XSS跨站脚本攻击
XSS是什么
XSS(cross-site-scripting) 即是跨站脚本攻击,是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了 HTML 以及用户端脚本语言。
简洁点来说,XSS 就是利用了网站对用户输入没有过滤完全的漏洞,上传恶意代码到网站页面上,使得其他用户加载页面时执行攻击者的恶意代码,达到窃取用户敏感信息(如 cookie)的目的,根据种类不同,一般又分为 反射型 XSS 攻击,存储型 XSS 攻击,DOM 型 XSS 攻击
反射型XSS:只是简单的把用户输入的数据反射给浏览器,简单的说,黑客往往需要诱使用户点击一个恶意链接,才能攻击成功(服务器中没有这样的页面和内容)
低级:
出现弹框(alert起作用了,弹框并没有危险),说明存在XSS漏洞
利用XSS平台盗取cookie等信息
Cookie: PHPSESSID=iv009qgq5m6at418g41f0gga9e; security=low
测试url: http://127.0.0.1:8080/vulnerabilities/xss_r/
登录不进去,不知道怎么回事????
利用xss漏洞制作钓鱼网站
<iframe src='https://cn.bing.com' width=’1500px’ height=’900px’></iframe>
中级,利用大小写绕过
相比与low级别源码,medium代码中多了¥name=str_replace(‘<script>’,’’,$_GET[‘name’]);
意思是:把$_GET[‘name’]中的<script>替换为‘’,也就是说把<script>这个标签进行了过滤用来防止xss,需要注意的是str_replace()区分大小写
高级:通过img,body等标签的事件或者iframe等标签的src注入恶意的js代码:
<img src=1 οnerrοr=alert(/xss/)>
存储型XSS:代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码。如果没有过滤或过滤不严,那么这些代码将存储到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie(虽然还有种DOM型XSS,但是也还是包括在存储型XSS内)
- Low
修改最大输入长度
输入如下:<script>alert(1)</script>,显示出弹窗
- Medium
采用代码:双写绕过<sc<script>ript>alert(/xss/)</script>
还可以大小写绕过<Script>alert(/xss/)</script>
- High
这里使用正则表达式过滤掉了<script>标签,但是忽略了img,iframe等其他危险的标签,因此name参数依然存在存储型XSS
抓包该name参数为<img src=1 οnerrοr=alert(1)>
DOM型XSS
Low:
Medium:
></option></select><iframe οnlοad=alert(/xss/)>
High:
English#</option></select><iframe οnlοad=alert(/xss/)></option>