信息收集

如何判断目标是window还是linux

看ping的TTL值来判断,通常128 是window 而linux是52左右

敏感信息泄露

最多的敏感信息泄露就是开发或运维不专业将源码直接zip打包复制到服务器解压跑起来以为就完事手工了,这种情况就会被目录爆破给爆出源码压缩包,其次解压出来的源码也是会存在.git .svn源代码泄露的,通过分析可以提取出历史提交信息有可能里面就包含了敏感的账号密码

还有的就是开发人员可能用的是苹果电脑可能会遗留.DS_store文件,通过分析它也是能读取出一定的代码文件目录结构的,然后就能精准下载源码文件了

还有的就是运维偷懒备份完数据没有移走文件会出现rar、zip、tar.gz、bak这种备份文件,也是会出现泄露

漏洞扫描

通常我得到一个目标先到fofa 360夸克 零零信安这些平台先搜集一波资产信息,这样得到资产后就能入手用工具awvs nessus TscanPlus 这些自动化工具来扫了,自动化开扫的同时我也不会闲着而是开burpsuite进行手工测,手动点一点所有的api接口经过burpsuite的各种插件识别是否存在SQL注入 log4j fastjson反序列化攻击 ,有登录功能我就尝试弱口令admin root一类的字典来进行爆破,如果不行我他还有注册功能我就用手工注册一个,然后进一步渗透,因为大多数没有登录的情况下渗透是有限的 大部分接口都是401 而登录成功后接口就是200了,这样攻击渗透面会更大,以此类推用这个方式来进行sql注入 log4j fastjson actuator xxe或者是ssrf常规的手段都全部过一遍,这是一个良好的开始

等自动化工具出结果了有什么端口指纹信息都有什么他的版本是什么,那么接下来就能针对性的对这些个目标进行渗透了,是中间件就到msf或者github上去寻找对应的cve payload来打,基本版本号能对得上的情况下,一打一个准很快就能出结果

因为技术在变化AI发展的很快,AI自动化挖洞项目也是非常好用的,有可以利用github上热门的挖洞项目strix(斯特里克斯)对目标开扫,花个几个亿的token对目标资产进行深度渗透会有意料之外的结果,它没有泄露API文档的情况下你只能通过手动点点点的方式也会或者是通过浏览器的插件来识别api,最后还是自己手动测,在庞大的API情况下自己手工测难免是会有遗漏的,可以通过自动化ai挖洞项目来让他全量分析javascript提取出来的接口,自动化的发包来测试401或200寻找哪些是未授权访问,可以做到进一步的高效渗透

XSS,XXE,CSRF,SSRF

csrf 和 xss 和 xxe 有什么区别,以及修复方式

xss是跨站脚本攻击用户提交的数据可以构造代码来执行从而窃取用户的信息,最经典的就是窃取cookie,修复方案则严格对于输入和输出做到实体化转义不要原样响应回去,而对于cookie则配置使用httpOnly来禁止使用javascript读取cookie值

csrf是跨站请求伪造,xss是实现csrf的诸多手段中的其中一种,修复方案:筛选出需要防范csrf的页面然后嵌入token,再次输入密码,严格校验referer来源

xxe是xml外部实体注入攻击,是开发人员错误的引入了有漏洞的代码组件也或者是错误的配置了允许调用外部实体从而导致了xxe,它会引发相关安全问题诸如任意文件读取,修复方案则是升级有漏洞的组件或者是禁用加载外部实体配置

xss的payload简单说几个

<javascript>alert(1)</javascript>

<img src=x onerror=alert(1)>

<onclick=alert(1)>

<svg onload=alert(1)/>

<iframe src=javascript />

xxe

xxe漏洞原理是什么?实际怎么测试?

本质上就是开发或者是项目错误的配置了允许加载外部实体导致的,测试点其实很简单就观察请求是否是xml格式的,还有可能是接口是既支持json也支持xml的,只是你看到是json以为不是xml就忽略了,其实不行,可以在burpsuite通过插件来转换一下将json转成xml格式重新发送,如果它接受并正确处理了!那么就证明可以进行xxe测试了,如果很明显的提示Content type ‘application/xml not supported 那么它就不支持

如果支持则用最简单的payload打一下看是否有回显读取一下/etc/passwd或者是hosts文件也或者是window的win.ini来验证,如果有回显则直接打,如果无回显则用外带dns检测到burpsuite或者yakit来生成一个DNSlog域名来打一下,看域名是否有回调,如果有回调则可以尝试在自己的服务器中构造一个dtd然后payload远程加载它,读取passwd等文件然后外带以参数的方式拼接到dnslog域名后面就可以了

怎么修复?

如果是开源项目那么可以尝试升级,如果是自己公司的项目还有开发人员则直接修复,如果既不能升级也没有开发人员维护那么就可以考虑在网络层面做拦截,例如在waf上对目标做过滤 针对性的加一下关键词例如system就可以了

ssrf

SSRF功能的本质是想要将一个网络地址的内容给加载出来,但是没想象到会输入127.0.0.1:8080,这种方式将服务器的内网信息给响应了,通常只需要找api接口有没有一些参数是url,fetch,load,这些参数后面就有可能会拼接着一个网络地址,这就是渗透点,可以到burpsuite或者yakit生成一个dnslog域名探测一下看是否有响应,后续就是探测常用中间件端口3306 6379也可以利用字典爆破内网资源,看是否有响应,也或者是用file协议尝试读取服务器文件,甚是是可以云上攻击获取云平台的元数据user-data从而获取它的ak sk接管云资产

其实有ssrf漏洞是可以一定程度能够绕过cdn发现真实ip的,如果云主机并没有nat出网配置就单纯是它自己,那么出网连到dnslog的ip就有可能是它的真实ip那么就可以利用nessus来进一步渗透了

1. 找参数
   └─ 抓包找 url/fetch/load/source/... 等参数

2. 验证漏洞 (DNSLog)
   └─ ?url=http://your-dnslog.com
   └─ 收到DNS查询 → 确认存在SSRF

3. 内网探测
   └─ 探测 127.0.0.1:端口 (端口扫描)
   └─ 探测内网IP段 (192.168.x.x, 172.16.x.x)
   └─ 用字典爆破端口/服务

4. 深入利用
   ├─ 读文件: file:///etc/passwd
   ├─ 云元数据: http://169.254.169.254/latest/meta-data/iam/security-credentials/
   ├─ 打内网Redis: gopher://127.0.0.1:6379/_*1%0d%0a$8%0d%0aflushall...
   ├─ 攻击内网Elasticsearch、Memcached、MySQL...
   └─ 获取AK/SK → 控制云资产

5. 扩大战果
   ├─ 通过DNSLog找到真实IP
   └─ 用Nessus对真实IP进行进一步渗透

域名有CDN如何寻找真实IP

可以通过fofa 360夸克 微步在线 零零信安这些平台收集一下域名资产信息有可能就直接定位到它的真实IP了,还有可能就是域名一开始是解析到真实IP的但是后来才加的CDN,通过这些平台的解析记录查询,也是有可能寻找出真实IP的,还有可能他的主域名有cdn但是他的子域名旁站没有cdn这样也能寻找到它的真实IP,还可以通过网站的证书序列号查询,网站的icon图标hash值查询,多多少少会查询出一些IP,进一步分析就能寻找到它的真实IP,或者是在渗透的过程中发现了SSRF利用点,通过burpsuite yakit来生成dnslog打过去看响应的IP是什么,如果目标没有NAT技术那么泄露的IP就大概率也是他的真实IP

SQL注入

注入类型通常就是数字,字符,搜索型还有报错、布尔盲注、时间盲注,在发现注入点的时候其实我们就已经大概知道当前是什么站点了,是java还是php 我会故意搞一些骚操作让程序报错这样可能会暴露出程序的运行目录例如/var/www/html对吧,这样就可以利用注入点写入webshell了,利用蚁剑这些工具来生成一句话木马利用 union select into outfile给写到那个目录里面去,这样就可以getshell了,但是利用的前提就是数据库没有严格的安全目录,否则是写不进去

暴力破解及验证码安全

可以用常用的账号密码来快速测试,也可以在前期的javascript爬虫中有可能会得到不少的账号,也可能在未授权访问接口中泄露一些账号用户名都能获取到不少的账号,密码可以直接用intrude弱口令密码字典爆破,大多都需要有验证码可以尝试去掉验证码发包看能不能绕过,也可能验证码能在一段时间内例如5,10分钟内不过期可以一直复用,如果遇到waf或者锁封ip封账号可以尝试用XFF来绕过每次换一个新的X-Forwarded-For来实验也可能会绕过,也可能开发会写死某种超级验证码或许能在javascript中找到,前端javascript中找不到可能他后端代码也写了这种超级验证码判断,可以尝试爆破验证码但凡出现账号或密码不正确而不是验证码不对,就有可能你猜对了超级验证码

MSF,Burp考题

burpsuite常用的功能是哪几个?

dashboard仪表盘,target目标,proxy代理,intrude入侵者,repeater重发器,collaborator协助者,decoder编码器,extension拓展

reverse_tcp与bind_tcp的区别?

reverse_tcp在出网的时候木马主动连接目标服务器,而bind_tcp则目标不出网木马绑定本地的端口等待主动连接

命令执行

本质就是参数传递给变量而代码逻辑未经过滤使用命令执行语句执行了这个变量,从而触发命令执行,常用的执行函数有assert,system,反单引号``,通常这类漏洞会集中出现在后端控制面板或者某种控制台管理项目它管理各种机器,渗透进去发现有可以ping curl 响应内容的地方就有可能引发命令执行或SSRF