SSRF漏洞原理
什么是SSRF漏洞?定义SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)
SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。
漏洞成因
由于业务需要,服务端程序需要从其他服务器应用中获取数据,例如获取图片、数据等,但是由于服务器没有对其请求的目标地址做过滤和限制,导致黑客可以利用此缺陷请求任意服务器资源,其中就包含隐匿在内网的应用。很多企业认为服务器在内网不会受到黑客攻击,便放任漏洞不管,不做补丁修复和版本升级,弱口令遍布内网。但是在SSRF漏洞面前这些漏洞都会成为黑客的“盘中餐”。
SSRF漏洞一般为HTTP/HTTPS方式出现,但类似TCP Connect方式也可以探测内网的IP活跃状态和端口的开放情况,但此类危害较小。
漏洞类型根据是否显 ...
JSONP劫持漏洞
JSONP的介绍JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的<script> 元素是一个例外。利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并不是 JSON,而是任意的JavaScript,用 JavaScript 直译器执行而不是用 JSON 解析器解析。
有关JSONP的产生与实现推荐参考下面这篇文章,讲的非常清楚易懂:
https://www.jianshu.com/p/e1e2920dac95
JSONP劫持
JSON 劫持又为“ JSON Hijacking ”,最开始提出这个概念大概是在 2008 年国外有安全研究人员提到这个 JSONP 带来的风险。其实这个问题属于 CSRF( Cross-site requ ...
CORS跨域漏洞
同源安全策略同源策略(Same Origin Policy)是一个很重要的安全理念,是客户端脚本的重要的安全度量标准,其目的是防止某个文档或脚本从多个不同源进行装载。
根据这个策略,a.com域名下的JavaScript无法跨域操作b.com域名下的对象。比如,baidu.com域名下的页面包含的JavaScript代码,不能访问google.com域名下的页面内容。
JavaScript必须严格遵循浏览器的的同源策略,包含Ajax(事实上,Ajax也是由JavaScript组成)。通过XMLHttpRequest对象实现的Ajax请求,不能向不同的域提交,比如,在abc.test.com下的页面,不能向def.test.com提交Ajax请求。
这里的“同源”指的是同协议、同域名、同端口。
关于JavaScript能否跨域通信的详细说明,见下表:
http://www.a.com/a.js访问以下URL的结果
URL
是否允许通信
备注
http://www.a.com/b.js
是
同域名同端口同协议
http://www.a.com/Script/b.js
...
深入浅出CSRF
CSRF的介绍CSRF(Cross-Site Request Forgery)即跨站点请求伪造,是一种广泛存在于网站中的安全漏洞,也是一种危害很大的客户端攻击手段。
CSRF经常配合XSS一起进行攻击,也有人把它归类成XSS攻击的一种。尽管CSRF原理和名字与XSS都很相像(都属于跨站攻击,不攻击服务器端而攻击正常访问网站的用户),但又不尽相同。
CSRF攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在未授权的情况下执行在权限保护之下的操作,具有很大的危害性。具体来可以这样理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。
CSRF 攻击方式并不为大家所熟知,实际上很多站点都存在CSRF的安全漏洞。早在2000年,CSRF这种攻击方式已经由国外的安全人员提出。但在国内,直到2006年才开始被关注。2008年,国内外多个大型社区和交互网站先后爆出CSRF漏洞,如:百度、NYTimes.co ...
XSS攻击平台
XSS Payload如此强大,为了使用方便,有安全研究者将许多功能封装起来,成为XSS攻击平台。这些攻击平台主要目的是为了演示XSS的危害,以及方便渗透测试使用。下面介绍了几个常见的XSS攻击平台。
开源的XSS平台项目XSS PlatformXSS Platform 是一个非常经典的XSS渗透测试管理系统,原作者在2011年所开发,由于后来长时间没有人维护,导致目前在PHP7环境下无法运行。该项目作者将源码移植到了PHP7环境中,同时增加安装功能。
项目地址:https://github.com/78778443/xssplatform
BlueLotus_XSSReceiver其安装起来相比较于xss-platform更加简单,如果说xss-platform是一个多人使用的堡垒,而BlueLotus_XSS更像是一个人使用的瑞士军刀。其界面布局清新、数据可阅读性好、IP获取准确、IP地址定位精准、轻量级(无需数据库)、对数据存储进行加密。
项目地址:https://github.com/asw3asw/BlueLotus_XSSReceiver
MedusaMedusa是一个 ...
XSS利用方式剖析
XSS跨站攻击是攻击者通过一些正常的站内交互途径,例如发布评论、添加文章、发送邮件和留言等,提交含有恶意JavaScript脚本的内容文本,如果服务端没有过滤和转义这些脚本,反而作为内容发布到Web页面上,当其他用户访问该页面的时候就会执行这些恶意脚本。
然而,伴随着XSS攻击技术的发展,原本的含义逐渐发生改变,如今XSS早已不再局限于“跨站”攻击的方式,而是一类利用恶意脚本发动注入式攻击的总称。
会话攻击Cookie基础介绍简单来说,Cookie是用户浏览网页时候网站存储在用户机器上的小文本文件,文件里面记录了与用户相关的一些状态或者设置,比如用户名、ID、访问次数等,当用户下一次访问这个网站的时候,网站会先访问用户机器上对应的Cookie文件,并从中读取信息,以便于用户实现快速访问。
Cookie的类型
持久型Cookie:以文本形式存储在硬盘上,由浏览器存取
临时型Cookie:也称会话Cookie,存储在内存中,关闭浏览器后会立即消失
Cookie的操作查看Cookie
可以通过Document对象访问Cookie,document.cookie。若要创建一个Cookie ...
XSS的混淆与绕过
编码混淆HTML实体编码有一些字符在HTML文档中有特殊的含义,例如<和>字符。
要在内容中使用这些字符而不被解释为HTML,就可以使用HTML实体。
如 &#lt;、<、<都可以被解码成常见的小于号 < 。其中 &#lt;叫做实体名称,< 和<叫做实体编号(前者为十进制,后者为十六进制),效果其实是一样的。
示例:
1<a href="javascript:alert(1)">test</a>
注:若需要在地址栏直接输入执行,还需要对其再进行URL编码才可执行。
不能对属性名或事件名进行html编码,否则会导致原先的属性或事件无效。
URL编码其实url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上“%”。比如“\”,它的ascii码是92,92的十六进制是5c,所以“\”的url编码就是%5c。
但是RFC3986 协议规定encodeURI 方法不会对ASCII字母 ...
XSS Payload的构造
浏览器的解析过程
获取请求文档的内容后,呈现引擎将开始解析 HTML 文档,并将各标记逐个转化成“内容树”上的 DOM 节点。
解析外部 CSS以及style元素中的样式数据形成呈现树。呈现树包含多个带有视觉属性(如颜色和尺寸)的矩形。这些矩形的排列顺序就是它们将在屏幕上显示的顺序。呈现树构建完毕之后,进入“布局”处理阶段,也就是为每个节点分配一个应出现在屏幕上的确切坐标。
解析script标签时,解析完毕马上执行,并且阻塞页面。
绘制 - 呈现引擎会遍历呈现树,由用户界面后端层将每个节点绘制出来。
HTML 解析器五类元素空元素空元素(Voidelements),不能容纳任何内容(因为它们没有闭合标签,没有内容能够放在开始标签和闭合标签中间)。
空元素: <area>、<base>、<br>、<col>、<command>、<embed>、<hr>、<img>、<input>、<keygen>、<link>、<meta>、<para ...
XSS的原理与分类
什么是XSS?XSS全称(Cross Site Scripting)跨站脚本攻击,是最常见的Web应用程序安全漏洞之一,位于OWASP top 10 2013/2017年度分别为第三名和第七名,在最新的owasp top 10 2021中XSS被归入注入漏洞,排第三名。XSS是指攻击者在网页中嵌入客户端脚本,通常是JavaScript编写的危险代码,当用户使用浏览器浏览网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的。
从上面中的一段话,可以得知,XSS属于客户端攻击,受害者最终是用户,但特别要注意的是网站管理人员也属于用户之一。这就意味着XSS可以进行“服务端”攻击,因为管理员要比普通用户的权限大得多,一般管理员都可以对网站进行文件管理,数据管理等操作,而攻击者一般也是靠管理员身份作为“跳板”进行实施攻击。
XSS攻击最终目的是在网页中嵌入客户端恶意脚本代码,最常用的攻击代码是javascript语言,但也会使用其它的脚本语言,例如:ActionScript、VBscript。而如今的互联网客户端脚本基本是基于Javascript,所以如果想要深入研究XSS,必须要精通Ja ...
sqlmap的使用技巧
sqlmap介绍sqlmap是一个开源的、国内外著名的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型的数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件,甚至可以通过外带数据连接的方式执行操作系统命令。
sqlmap支持MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB等数据库的各种安全漏洞检测。
sqlmap支持一下5种不同的注入模式。
基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
基于时间的盲注,即不能根据页面返回的内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
基于报错注入,即页面返回错误信息,或者把注入语句结果直接返回在主页中。
联合查询注入,可以使用union的情况下的注入。
堆叠查询注入,即执行多条SQL语句构造的注入。
官方网站:https://sqlmap.org/
...
