pikachu的SQL注入
数字型注入(POST)
因为是数字性不需要加字符测试。 把BurpSuite 中拦截的包发到 Repeater 中,修改id参数的值,查看响应结果。可以看到取出了数据库中全部数据,说明存在数字型注入漏洞。
猜测网站源码中的SQL语句为:
$query="select username,email from member where id=$id"
由此可以构造语句:
select username,email from member where id = 1 or 1 = 1
1中条件为两个,id=1的为真,或 1=1为真,故不管什么情况下,1=1都为真,所以id=1这个条件是真或假都无所谓,那么1和2的语句执行结果是一致的。
字符型注入(GET)
输入“kobe”,可以得到下面的输出
输入单引号,出现错误回显,说明存在sql注入风险
猜测网站源码中的SQL语句为:
select email from usertable where username='kobe'
查看源码为:
$query="select id,email from member where username='$name'"
构造闭合,payload为 kobe’ or 1=1#,单引号与select email from usertable where username=‘kobe’ 构成闭合,or 1=1 条件恒成立。#注释掉了后面的第二个引号,成功查到了数据库中所有的用户信息。
"select id,email from member where username='$name' or 1=1#'"