知难行易,知易行难
规则
无论说是 二进制 安全还是 web 安全,都是应用层面的安全。那么必然对应着与之实现该应用的语言和相关配置。
在对抗上,到了今天大多数时候都可以通过互联网直接搜索危险函数、关键实现方法来审计代码。 重点就是一些非内存安全语言编写的,或 C 系语言 截断攻击, web rfc7230 超文本传输写(分块传输 bypass) 都是利用检测机制不完善导致恶意攻击能够被执行,web 信息传输中 mime type欺骗。
目前这个时间节点 2024 年 ,top 10 漏洞 任意 关键字 如 ssrf 总结 就可以快速的学习到有关知识,实际情况是至少了解这个漏洞(有bug的功能)出现在那些位置
https://github.com/swisskyrepo/SSRFmap
所以 这里我想要表达的是一种学习方法和上手速度的问题,在实际工作中可能并不是所有的知识你都用得上,或是待解决的问题其前置知识是你熟悉的,那么在不熟悉这个问题的解决流程如何快速的上手去处理掉这个麻烦呢
第一 善用搜索
谷歌百度 直接搜索通过指纹识别到的或者 这个站点上有这某cms名称,直接键入 cms名 vuln
github 安全工具很多,尽量避免使用闭源二进制文件。(一定要清楚这个工具做了什么,比如一些场景我们只为了验证漏洞存在而不是执行恶意指令如上传webshell,执行恶意指令 )
各种服务应用的官网 ,如 apache vuln 这种关键字可以导航到 我们想要看的官网的一些历史漏洞信息。
第二 日常积累
嘿嘿,渗透测试的本质是信息收集,信息收集的实操其实就是检索
积累字典(这个不用多说)
偶尔积累一些工具 比如常用的shiro 反序列化工具(无论是 poc 还是 exp)。
了解一点点编程语言基础 了解变量和控制语句,知道什么是函数什么是类。
第三 工具使用
这里插一句题外话,web 的扫描器原理很简单就是发送一个 携带payload的数据包 根据匹配相应包数据来判断是否是存在漏洞,当然这说起来很简单(需要丰富的规则,强大的解析器,避免误报漏报)。
burpsuite(常用,抓包,修改数据重放,爆破)以及一些常用的插件 ,如自动化sql注入,越权测试等插件。0x404Ming's list / BurpPlug · GitHub)
yakit (国产 burp,有大量的 poc 用了的都说好,它是一款集成工具 具有抓包拦截修改数据等常用功能 并且继承了 nuclei 扫描器),但是我个人认为工具尽量做到单一功能比较好,nuclei的使用尽量还是直接用 nuclei cli 直接执行,使用的学习成本很低,要编写nuclei 测试模板可参考Nuclei Template Structure - ProjectDiscovery Documentation)
xray (无需多言了,了解一下 主动扫描和被动代理扫描,大多数情况挂个被动代理扫描事半功倍,这里面涉及到的高级用法直接搜索 xray 指定插件 plugxray的安装及使用_xray下载-CSDN博客 )
sqlmap (sql测试与利用工具,老朋友了,他的tmaper自带有一些绕过脚本可以尝试使用,当然遇到 waf 可以去找找 绕waf的文章,其实本质还是fuzz 那一套关键最好能在本地搭建一套环境然后去枚举测试绕过的方法 sqlmap的简单语法应用与实战操作_sqlmap语法跑文件-CSDN博客)
owasp zap OWASP ZAP使用教程 - 别动我的猫 - 博客园
dirsearch 使用Dirsearch探测Web目录 - 赛兔子 - 博客园
浏览器插件
直接搜proxy 随便找个能代理的都ok
wappalyzer 指纹识别插件
findsomething 随便翻翻可能有意外接口收获
第四 实际场景
等保做多了 怎么数据全是加密啊,渗透测试的终极是 js 逆向?? 大雾
遇到这类问题不要慌 直接 jstool + jsrpc + yakit (百度搜相关文章有具体的方法这里不多赘述,主打的一个方法论)
其实上面的要花时间学习 js 逆向 扣代码 还原加密算法等,但是真实情况是站点很多也没那么多精力去搞。
有一些漏洞他的验证只能通过 dns 外带形式,不然就是 exec 直接去创建文件类似无回显在内网环境怎么测试呢
这里是我的一个解决方式 GitHub - 0x404Ming/fastjsonscan-Intranet: 在内网环境中检测web是否存在fastjson漏洞
上述的方法通用的,原理很简单把 poc 中的请求改成我们本地的 ,在本地起一个 http服务或者rmi 之类的 ,有命令执行的 改为 curl 或 ping 我们主机就可以验证漏洞存在。
第五 测试流程
其实 每个人测试或者规章制度 报告格式都是不同的,看个人喜好来
可以直接 浏览器先开插件代理 proxy 到 burp中,在burp设置下游代理到 xray中 做被动扫描。(这个部分在网上也能搜到的具体实操,不过赘述)
我的方法是望闻问切,首先看,看是否是cms是否存在历史漏洞,如果是自研那么看页面有什么功能,搜索登录切换选项卡,观察随手输入点payload,看看有没有xss、sqli、弱口令、验证码绕过。渗透测试,还是主打一个测试只是我们的测试用例是特殊的。 (这期间观察请求包和响应包数据,或许有测试的接口没有屏蔽把所有信息都暴露出来也不一定,漏洞+1)
上述是常规的,然后就是业务逻辑漏洞,还是看功能,常见的任意登录,任意修改密码,任意查看他人用户数据(是正常功能看不了的),这里要声明什么是漏洞,漏洞是正常逻辑无法实现的如越权,权限不够执行的但是你突破了,没办法修改的你修改了,不该看到的你看到了,ok 这就是漏洞。
第六 红队攻击
- 其实 常规的渗透测试如等保渗透不涉及 红队攻击,这里简单的说一下红队攻击吧,首先是webshell,获得立足点,这里就扩展到 web 打点,打点最重要的是攻击面的信息收集。先知道家在哪,在知道从哪里能进入家。rce xxs 等组合漏洞 方法不限于web攻击社工等,核心技术还是web渗透、木马免杀。
web 开发语言
这一部分 了解然后 去 github 找对应的 poc 或 exp 即可,不做深入研究的话拿起工具就是干也行。
**无论是 web 还是二进制安全,测试本身就是修改可操控内容导致 非正常预期执行**
php
thinkphp
Laravel
php的魔术方法(这块可以百度具体查)
java web
- springboot
- Struts2
- shiro
- mybatis
Webpack(前端打包工具)
web 服务器
这里原本打算细说 每种服务器它对数据包处理,如参数传递取值等产生的一些绕waf的方法,这些网上细细检索一番 也会有不少收获
apache http server (php 、python)
官网安全公告 https://httpd.apache.org/security/
.htaccess
nginx
apache tomcat(专为Java设计的Servlet容器)
参考:
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。与我联系email c2VjaW5mby5tQGdtYWlsLmNvbQo=