bugku ctf题 sql2

一道sql注入题,记录下相关知识点。

打开是个平平无奇的登陆界面,然而现实是残酷的,=,空格,and, or等字符全被过滤。

bugku ctf题 sql2_第1张图片

查找大佬wp,发现新思路。利用知识点:  'xxxx'-0-''的值为0,'xxxxx'-1-''的值为-1,但在执行sql查询时, 当'xxxx'-0-''整个表达式为0时,username和0比较也会变成0,条件匹配成功,可避免username报错。

构造mid语句,使执行的sql为:select * from xxx where username='admin'-1-'',这样username不为admin,返回提示会是password错误,通过返回信息不同可判定获取的字符串是否正确。

构造sql语句为1,即构造等式:(ascii(mid(REVERSE(mid((passwd)from(-x)))from(-1)))="x"),前一个x是查询位数,后一个是查到的值。

代码如下:


bugku ctf题 sql2_第2张图片

解密出密码的md5值,然后登陆即可根据提示拿到flag。


参考文章:https://blog.csdn.net/xuchen16/article/details/82967627

你可能感兴趣的:(bugku ctf题 sql2)