Web应用程序漏洞——URL跳转

Web应用程序漏洞-URL跳转

第一步,打开网络拓扑,启动实验虚拟机,分别查看虚拟机IP地址:

Kali Linux

Windows2003

Windows 7

第二步,使用Kali Linux中的浏览器访问Windows2003靶机

http://172.16.1.200/admin(靶机IP地址)

第三步,打开终端,启动BurpSuite:

burpsuite &

第四步,进入Proxy标签,在Options中可以看到默认正在监听8080端口

第五步,在浏览器设置中配置代理

第六步,在管理员登录界面输入任意用户名和密码,BurpSuite拦截到一个数据包,该请求指向/admin/index.php,直接点击“Forward”放行

第七步,三秒后拦截到第二个数据包,数据包指向re-direct.php,通过GET方法发送了变量where值为/,点击“Forward”放行,并迅速观察浏览器变化

第八步,在放行该数据包后,浏览器显示内容如下

第九步,推测where的值为延迟跳转的地址,构造新的URL:

/re-direct.php?where=/admin

证实re-direct.php存在URL跳转漏洞。它可以用于用户欺骗。

第十步,我们可以使用Kali Linux仿写一个后台登录的页面,通过靶机的re-direct.php指向Kali Linux的地址。

例:

http://172.16.1.200/re-direct.php?where=http://172.16.1.100/admin

浏览Kali Linux中的/var/www/html/admin目录

/var/www/html是默认的网站目录;

index.php:

在admin目录下,index.php为提前准备好的钓鱼页面,当在index.php中填写用户名密码并点击登录按钮后,会触发save.php,将用户名和密码信息自动保存到data.txt当中

第十一步,开启Apache网站服务:

service apache2 restart

第十二步,使用Windows 7测试访问Kali Linux的admin页面

第十三步,利用靶机中的re-direct.php组成一个新的钓鱼URL,该URL来自172.16.1.200,但它会跳转至钓鱼网站。并模拟受害者访问:

http://172.16.1.200/re-direct.php?where=http://172.16.1.100/admin

第十四步,save.php被调用

第十五步,查看/var/www/html/admin/data.txt文件,用户名密码已被恶意获取并保存

实验结束,关闭虚拟机。

【总结思考】

理论上讲,URL跳转属于CSRF的一种,我们需要对传入的URL做有效性的认证,保证该URL来自于正确的地方。

猜你喜欢

转载自blog.csdn.net/qq_48609816/article/details/125966212