XSS

XSS攻击实战

Posted by Tattoo on 2019-02-25
Estimated Reading Time 1 Minutes
Words 523 In Total
Viewed Times

存储型XSS原理

攻击者在页面上插入XSS代码,服务端将数据存入数据库,当用户访问到存在XSS漏洞的页面时,服务端从数据库中取出数据展示到页面上,导致XSS代码执行,达到攻击效果。

在留言框内写入XSS代码

1
<img src=x onerror=alert(/XSS/)>

提交留言后出现弹框,内容为我们输入的代码

再次进入这个含有XSS代码的页面,依然弹框,说明XSS代码已经被我们写入到数据库中,每次进入该页面就会从数据库中读取,然后显示弹框

利用该存储型XSS可以获取用户cookie,在留言框内输入获取cookie的代码

1
<img src=x onerror=alert(document.cookie)>

提交后弹出cookie信息

反射型XSS原理

攻击者在URL中插入XSS代码,URL中参数可控,服务端将URL中的XSS代码输出到页面上,攻击者将带有XSS代码的URL发送给用户,用户打开后受到XSS攻击。

在输入框内输入任意内容,注意到URL内有参数name,它的值是我们输入的内容

尝试输入XSS代码,出现弹框,说明存在反射型XSS漏洞

再次回到存在反射型XSS的页面,页面不再弹框

DOM型XSS原理

攻击者在URL中插入XSS代码,前端页面直接从URL中获取XSS代码并且输出到页面,导致XSS代码的执行,攻击者将带有XSS代码的URL发送给用户,用户打开后收到XSS攻击。DOM型XSS与反射型XSS很像,但是二者处理参数的地方不一样,前者由前端javascript代码处理,后者由后端程序处理。

URL内有参数default,它的值可以随意改变,尝试输入XSS代码,出现弹框

1
<script>alert(1)</script>

或者构造img标签语句

1
></option></select><img src=1 onerror=alert('hack')>

也可以实现弹窗,证明存在DOM型XSS


If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !