xss攻击
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
xss的危害
- 窃取管理员帐号或Cookie,入侵者可以冒充管理员的身份登录后台。使得入侵者具有恶意操纵后台数据的能力,包括读取、更改、添加、删除一些信息
- 窃取用户的个人信息或者登录帐号,对网站的用户安全产生巨大的威胁。例如冒充用户身份进行各种操作
- 网站挂马。先将恶意攻击代码嵌入到Web应用程序之中。当用户浏览该挂马页面时,用户的计算机会被植入木马
- 发送广告或者垃圾信息。攻击者可以利用XSS漏洞植入广告,或者发送垃圾信息,严重影响到用户的正常使用
挖掘思路
黑盒测试:
- 一般对一些留言板、搜索框、文章发表、用户资料修等等改这些地方进行测试
- 总之就是有数据交互的地方,试一试就行了
白盒审计
- 用户输入参数:GET POST …
- 函数
- 输入到输出是否有过滤?
反射型xss
说实话我个人认为这个反射型的xss利用价值不是很高,这个也叫非持久性xss。顾名思义,我们把payload夹在存在漏洞的url里,发送给管理员,诱导他点击这个链接,而且还必须是在登录管理员账号的情况下,打到的cookie才好使。
有一些特殊情况下,反射型xss的危害也是不容小觑,比如在name的输入框中插入
<meta http-equiv="refresh" content="3"/>
这段数据传输到浏览器中,网站每3秒会刷新一次,严重会引起服务器崩溃
常见场景
- 将前端获取的内容,直接输出到浏览器中
- 将前端获取的内容,直接输出到HTML标签
- 将前端获取的内容,直接输出到<script>标签
这里举一个很简单的例子:
<?php
$id = $_GET['id'];
echo $id;
payload:
?id=1<script>alert('xss')</script>
还有一种情况也是比较多见的,需要我们自己去闭合标签:
<?php
$id = $_GET['id'];
?>
<input type="text" value="<?php echo $id?>">
这里闭合前面的value,然后插入我们的js代码:
?id="><script>