-
安全产品
-
-
-
新手随记——某内网业务系统渗透测试实战
发布时间:
2020-08-11
来源:
作者:
访问量:
114
近日,天地和兴工业网络安全研究院研究人员对A企业网站及B企业内网业务系统分别进行了模拟攻击,分析其系统存在的漏洞及所面临风险,从而形成《新手随记——某电厂业务系统xss渗透测试实战》和《新手随记——某内网业务系统渗透测试实战》两篇渗透测试报告,以下为报告二《新手随记——某内网业务系统渗透测试实战》的详情解析。
1 初期的探索
在拿到目标ip地址10.xx.xxx.*的网段后,前期的侦察工作一定是要做充分的。我喜欢先从网站程序入手,这样如果找到突破口就可以迅速拿下。通过scanport.exe针对10.xx.xxx.*的网段进行指定端口扫描。
优先选定80,81,82,8000,8001,8002,8080,8090,9000,9001这些端口。
2 弱口令
分别在10.xx.xx.101、109、200、201、254发现若干web业务,很多都是一个后台登录的模板,对这些登录的后台进行口令爆破等等,发现了若干的弱口令如下图:
接着对下一个业务系统进行测试!
3 SQL注入
在另外一个WEB应用进行测试的时候,发现一个日期查询页面。这个时候我第一点想到的就是SQL注入,刚开始我以为注入会在下面的翻页处,bp抓包后发现注入点是在日期查询处,它是通过日期来将数据库的数据输出到前端。此处存在延时注入。漏洞URL:http://10.xx.xxx.5/pages/list_zbb.aspx?data=2020-06-01进行手工探测:
http://10.xx.xxx.5/pages/list_zbb.aspx?data=2020-06-01 and sleep(5) # 成功延时。
何为盲注?盲注就是在sql注入过程中,sql语句执行的选择后,选择的数据不能回显到前端页面。此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。盲注分为三类:
l 布尔SQL盲注;
l 延时SQL盲注;
l 报错SQL盲注。
select sleep(5);
length()函数:返回字符串的长度。
substr(str,pos,num) :截取指定位置指定长度的字符串。
mid(str,pos,num) :截取指定位置指定长度的字符串。
ascii()查询ascii码中对应的值。
if 判断语句
1.猜数据库长度(第一个语句成立的话,执行第二个语句,否则执行第三个语句)
2.猜数据库名。
l 猜数据库第一位,使用if判断,判断数据库名第一位对应的ascii值。借助burpsuit工具抓包。
l 将抓的包发送到爆破模块。去掉变量。
l 在第一个值这里添加变量。
可以看到112对应的ascii中的字母为p。
3.破解整个数据库名称。
对应ascii值可得知:数据库名称为pentest。因为手工盲注太磨时间了,使用sqlmap工具进行辅助测试:Sqlmap.py -u “http://10.xx.xxx.5/pages/list_zbb.aspx?data=2020-06-01” --batch --dbs。
l -u 指定URL地址;
l --batch 自动默认应许;
l --dbs 查询数据库名字;
l --os-shell 通过上传恶意dll来获取一个shell。
数据库注出之后,尝试了一个--os-shell,发现权限太低,获取不了shell。
接着再针对下个web业务网站进行探测!
4 RCE
在某页面测试中,发现后台登录跳转页是.action后缀。漏洞URL:http://10.xx.xxx.74/ZHGL/portal/ww/checkLogin.action祭出Struts2工具,发现后台存在远程代码执行漏洞,通过该漏洞测试者可以完全控制目标服务器。
漏洞编号:S2-005、S2-009、S2-012、S2-015、S2-016、S2-045。
最后通过S2-045成功获取一枚shell。
Struts2是apache项目下的一个web 框架,普遍应用于阿里巴巴、京东等政府、企业的门户网站。从2010年开始struts陆续曝出漏洞:
最后编写报告,本次渗透完成!
天地和兴,工控安全,渗透测试,工控安全
下一条:
相关资讯
关注我们