欢迎大家光临我的博客一起交流学习呀~
http://www.chenjingjiu.cn
1.Brute Force
上篇文章截的图太多了,这回就不给大家截题目了,重点的图还是会有的哦~
从源码可以看到,只有红框框出来的地方发生了变化。这个mysql_real_escape_string()是干什么的呢?
简单来说就是对一些特殊字符进行了转义,那低等级时候用到的注入就失效了吧,这回就只能老老实实爆破了,而且可以看到中等级的代码依然没有限制尝试次数,所以就存在爆破漏洞。
具体操作与第一篇没有区别,可以参见上一篇文章。
2.命令执行
从源码可以看出,比低等级多了红框和黑框中的代码。其中红框的代码是定义了一个黑名单数组,只要在黑名单中的字符都会被替换为空值,也就是被删除。
而黑框中多了一个php函数str_replace()【http://www.w3school.com.cn/php/func_string_str_replace.asp】,简单来说就是从第3个参数找到第一个参数中的值,然后替换为第2个参数。这样就把target里面的黑名单字符全部删去了。不过这个黑名单写的也太敷衍了,就屏蔽了&&和:,那这个就和低等级的还是没啥区别,直接用低等级代码无脑过。
3.CSRF(跨站请求伪造)
从源码可以看出,比低等级的多了红框中的内容。主要是多了一个HTTP_REFERER变量,利用eregi()函数【https://www.php.net/manual/en/function.eregi.php】进行匹配,简单说就是如果HTTP请求头存在referer字段且包含”127.0.0.1”,即可绕过验证。我们来抓包看一看访问恶意网址时的请求包。
可以看到这里的referer是当前访问网页的地址,然后返回一个重定向响应