【BUUCTF】[极客大挑战-2019]EasySQL
通过查看源码分析check.php,是一道SQL注入。
关于这道题,毋庸置疑,最简便的方法就是使用万能密码,
在网上搜集的PHP万能密码:
"or "a"="a |
或者:
这个拼接的SQL语句为:
username=admin' or '1'='1&password=admin' or '1'='1 |
但是我想探究一下根源:
使用纯数字注入,看一下回显
使用纯字符注入,看一下回显
数字与字母混合注入:
数字与字符串混合注入
发现使用的是MariaDB数据库
所以密码框存在注入,可以用’闭合,当输入1”时,正常返回密码错误
接下来用%23作注释符,可以得到页面正常。
sql中用#作为注释,这是用get传递数据,用url编码一下就是%23MySQL5注入的一般流程
获取字段数-查库名-查表名-查列名-查数据
开始爆字段:
测试到3的时候发现可以正常显示了,说明前面的查询字段有3个
构造语句,开始查当前数据库
Payload:username=1&password=1’ union select null,null,(select database()) %23
有三个查询字段,所以union 后面的语句填充两个null,和一个查当前库的语句
y4tacker写的真的很棒:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 The DC_comics's World!