目录
1、思考和闯关
2、原因和防御
3、疑惑和解答
官方认证的简单关卡
1、思考和闯关进入本关页面显示如下,有4个链接
接下来有两种方法可以找到漏洞位置
(1)右键 查看网页源代码
找到上图四个链接的位置,可以发现url重定向是通过 urlredirect.php?url= 来实现的
拼接当前页面url之后,完整的payload是:http://ip:port/pikachu/vul/urlredirect/urlredirect.php?url=xxx
ip、port、xxx根据自己情况写
(2)通过burpsuite抓包
HTTP状态码302表示重定向
上图第3个request报文的具体内容如下,由此也可得到payload
重定向后转向的是/pikachu/vul/urlredirect/unsafere.php(上图第4个报文)
尝试一下漏洞利用:
浏览器地址栏输入http://ip:port/pikachu/vul/urlredirect/urlredirect.php?url=http://www.anantest.com
页面跳转到了http://www.anantest.com
通过burpsuite抓包可以看到跳转过程
为什么会有这个漏洞呢?还不是因为用户可控的参数没有被好好过滤。
本关代码中与漏洞有关的节选如下,当url参数的值不为i时,就会跳转到url值表示的页面(23行)
试着防御一下,修改一下if else语句分支(22~25行),如果url的值为unsafere.php,则跳转到unsafere.php,如果url的值不为i,也不为unsafere.php,则留在当前页面,并提示“非法地址!”
在浏览器地址栏输入之前使用的payload,页面没有跳转,并提示非法地址。
防御成功~
过关后我不禁产生了疑惑,这漏洞有啥利用价值?
看了pikachu的官方介绍,原来可以用来骗人