这是Header 注入。
意思是,从服务器要求的Header头里面找到可以注入的注入点。
从源代码可以看出,服务器将Header里面的user-agent的值没有经过过滤就带入了insert into语句,这就造成了注入。
$uagent = $_SERVER['HTTP_USER_AGENT'];
...
$insert="INSERT INTO `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES ('$uagent', '$IP', $uname)";
首先,抓包。
还有一个问题就是,insert into语句要在登陆成功后才能执行,所以必须输入正确的用户和密码再抓包。
红框框出来的就是我们可以利用的地方。
将其改成下图的形式。
首先,
1','2'
用来填补insert into所需要的数据,也可以替换成其他select语句。
之后的
(select username from users where id=1
这是为了可以使用后面的
and left(version(),1)=5
这样就可以猜出数据库版本号和密码啊什么的的了。因为若是不对,and后面的语句会返回0,然后连上前面的where就是
where id =0
自然不存在就会报错了。
还有一点就是,mysql_query()函数每次只能执行一条语句,所以不要再尝试在insert into后面加上分号;来企图执行其他语句了。不说了,都是泪。。。
PS:吴神说 insert into 最后可以加 and ?可是我怎么加都不行啊。。。而且 insert into 也不能加 where 。。
Less-19
User-Agent: 1',(select password from users where id =1 and left(version(),1)=5))#
FROM :rickyhao.com | rickyhao.com
额,上午驾校学车,中午打了会儿安恒的月赛,就来看巅峰极客的题了。时间关系实力原因没做几个emmmm太菜了wa MISC-warmup-100pt 拿到一个bmp文件,套路走一波,右键查看属性emmm啥都没有。 丢到winhex里面也没有什么明显的提示或者信息。…
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论