xss及CSRF

一、XSS

1.反射型xss

xss及CSRF_第1张图片

 

 输入kobe点submit发现url为http://127.0.0.1/pikachu/vul/xss/xss_reflected_get.php?message=kobe&submit=submit,于是确定get传参的反射性

 

测试将kobe改为js    ,成功弹窗

 xss及CSRF_第2张图片

 

 2.反射型xss(post)

输入任意字符

xss及CSRF_第3张图片

 

 

 页面源码现实输入的字符被完整保留

xss及CSRF_第4张图片

 

 

 构造payload

在输入之前先修改长度限制将20改为50

xss及CSRF_第5张图片

 

 

 再将构造的payload  输入到pikachu上,提交。

发现payload成功执行

xss及CSRF_第6张图片

 

 

 

3.存储型xss

输入两个单引号

xss及CSRF_第7张图片

 

 

 查看源码发现输入的单引号没有经过任何转义或处理

xss及CSRF_第8张图片

 

 

 

输入Payload进行测试,成功执行

xss及CSRF_第9张图片

 

 

 关闭这一界面,再次打开时发现直接弹窗了,说明存储型xss虽然原理与反射型xss相似但危害更加持久,因为存储记录会一直保留。

4.DOM型xss

DOM可以理解为访问HTML的标准接口,DOM里面会把我们的HTML分成一个DOM树,如下图:

xss及CSRF_第10张图片

 

 

 

我们可以以这棵树为入口,通过DOM的某些方法对树进行操作,比如对标签的添加、改变和删除等等

 DOM这个东西相当于在前端提供了一个通过JS去对HTML进行操作的接口

 xss及CSRF_第11张图片

 

 

 xss及CSRF_第12张图片

 

 

 输入和输出并不一样

查看源码:

xss及CSRF_第13张图片

 

 

 

这里有段JS代码,它通过 getElementById 获取到了标签 Id 为 text的内容赋值给str,然后又把 str 的内容通过字符串拼接的方式写到了 a 标签的 href 属性中,a标签会写到 Id 为 dom的 div 标签中

构造的Payload如下
#' onclick=alert("xss")>,输入:

xss及CSRF_第14张图片

 

 

 成功执行

 

5.DOM型xss-x

输入一些内容后的显示

xss及CSRF_第15张图片

 

 

 观察源码:

xss及CSRF_第16张图片

 

 

 

这里也有个JS代码,它定义了一个domxss函数。它利用 window.location.search 获取浏览器中URL的内容,然后赋值给 str

然后经过URL解码和字符串分隔,取出URL中的参数内容,再把 “+” 替换为 “ ”(空格),赋值给 xss

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

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

构造的Payload跟刚才是一样的    #' onclick=alert("xss")>

xss及CSRF_第17张图片

 

 

 成功执行

 

6.xss之盲打

XSS盲打不是攻击类型,而是一个攻击场景

在皮卡丘平台上,我们随便输入一些东西

 xss及CSRF_第18张图片

 

 

 

提交后我们输入的内容不会在前对输出,而是提交到了后台,可能管理员会去看。如果我们输入一个JS代码,管理员登录后台管理界面,如果后台把我们的内容输出,那后台管理员可能遭受到我们的XSS攻击,我们提交以下内容,并登录后台管理界面(账号密码为admin,123456)一登录进来就遭受了XSS攻击 

7.xss之过滤 

    实际中的系统,或多或少都会做一些安全措施,但是这些安全措施也能方法、逻辑不严谨,可以被绕过。

转换的思路

  • 前端限制绕过,直接抓包重放,或者修改html前端代码。比如反射型XSS(get)中限制输入20个字符。
  • 大小写,比如。后台可能用正则表达式匹配,如果正则里面只匹配小写,那就可能被绕过。
  • 双写(拼凑),pt>alert(111)pt>。后台可能把闭合掉页面中的

    xss及CSRF_第28张图片

     

     成功弹窗

     二、CSRF

    1.CSRF(get)

    xss及CSRF_第29张图片

     

     

     submit类型为get

    xss及CSRF_第30张图片

     

     

     点submit,截包,修改参数

    xss及CSRF_第31张图片

     

     

     发现pikachu上的信息被修改

    xss及CSRF_第32张图片

     

     

     2.CSRF(post)

    xss及CSRF_第33张图片

     

     

     

    同样查看审查元素,发现post

    xss及CSRF_第34张图片

     

     

     这次需要构造一个服务器文件的链接,功能为一被访问就自动post数据到修改个人资料的PHP文件上。

     

     

     构造html代码如下

    xss及CSRF_第35张图片

     

     

     点击html的url http://127.0.0.1:88/pikachu/vul/csrf/csrfpost/post.html

     访问该url,跳转回了pikachu页面

    xss及CSRF_第36张图片

     

     

     3.CSRF(token)

    点击submit后截包,发现多了一个token值,且token值每次都随机变化。

    xss及CSRF_第37张图片

     

     

     xss及CSRF_第38张图片

     

     

     因此难以绕过token

    查看后台发现token是以明码方式标识出来的

    xss及CSRF_第39张图片

     

     

     因此可以写一个token捕捉工具捉到token值,再通过反复暴力破解的方式,成功破解出来。

     

     

     

     

你可能感兴趣的:(xss及CSRF)