|
某次渗透测试,搜索目标站点的漏洞WAF拦得我怀疑人生。常规路径全被封死,技巧端口扫描结果干净得像一张白纸。搜索我随手在FOFA里敲了句body="欢迎登录" && country="CN" && status_code="200",漏洞然后按icp备案号反查同主体资产——结果翻出一个没挂WAF的技巧老旧测试系统,弱口令直接进后台。搜索这事儿干完我就一个感受:FOFA用得好不好,漏洞差距不在语法背得熟不熟,技巧在于你怎么把漏洞思路翻译成搜索逻辑。搜索 先聊个最容易被忽略的漏洞点:别老盯着title=和body=打转。FOFA的技巧header=字段才是宝藏。很多开发图省事,搜索直接在响应头里塞版本号,漏洞比如header="X-Powered-By: ThinkPHP",技巧你搜出来一堆老版本站点,直接试已知RCE。更骚的是搜header="Set-Cookie: rememberMe=deleteMe"——这是Shiro的典型标志,配合title="登录"过滤,批量检测反序列化漏洞,一抓一个准。我见过有人用这招一小时刷出十几个可利用目标,效率比拿扫描器硬怼高太多。 再讲个实战细节。搜漏洞组件时,别只用版本号。比如FastJSON,你搜body="fastjson"会捞上来一堆无关页面,但如果你搜header="Server: openresty" && body="fastjson",大概率能找到用OpenResty做反代的Java应用——这类站点往往内网架构复杂,漏洞利用后的横向空间更大。还有个土办法:搜icon_hash=。把目标站点的favicon下载下来,在FOFA里算个hash,直接找同图标资产。很多企业多个系统共用一套前端框架,图标一样,但安全等级天差地别。你从主站跳到一个子系统的同图标页面,说不定就绕过了SSO。 说个反直觉的操作。很多人搜漏洞喜欢用vuln=关键词,但FOFA的漏洞库更新有滞后性。我的习惯是搜中间件指纹+特殊路径。比如想找未授权访问的Jenkins,别搜vuln="Jenkins",直接搜body="Jenkins" && header="X-Jenkins",然后手动访问/script路径试试Groovy脚本执行。FOFA的after=和before=参数也值得玩味——新曝光的漏洞,往往只有最近上线的系统才中招。搜body="致远OA" && after="2024-01-01",比全量搜靠谱得多,老系统早打补丁了,新系统还在裸奔。 最后说点个人偏见。FOFA搜漏洞,本质是资产测绘的逆向思维。别老想着“我要找漏洞”,换个角度——“什么特征的资产最容易有漏洞”。比如搜cert="*.test.cn",拿测试域名的证书搜关联资产,十个里有八个是疏于防护的试验品。或者搜port="8080" && protocol="http" && body="后台管理",这种组合往往能捞出开发自己搭的管理界面,密码就写在注释里。 工具是死的,思路是活的。FOFA的语法就那些,但组合方式千变万化。下次挖洞卡壳时,不妨想想:如果我是运维,我会怎么偷懒?那个偷懒的痕迹,往往就是FOFA里最好用的搜索词。 |