实习时项目案例分享

Posted afanti

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实习时项目案例分享相关的知识,希望对你有一定的参考价值。

案例是在最近项目中遇到的俩个站,挺有意思的,所以分享出来。第一个站getshell后,内网简单的看了下,发现不是目标就没深入。

第一个站

1、弱口令
弱口令:admin admin进入网站后台
2、任意文件下载
在系统配置备份模块发现http://xxx.xxx.xxx.xxx/DownloadServlet?fileName=xxx这样的链接。
技术图片
尝试读取/etc/passwd文件,发现是linux系统
技术图片
读取/etc/shadow文件,能读取,猜测web服务是root权限,拿到root口令去破解,跑了一下午结果也没出来,放弃这条路。
技术图片
3、找网站根目录
读取了ftp的密码和quagga服务的密码,ftp因为没有写权限(放弃)。Quagga连接上去只能看下路由信息。只能读网站源码审计一波。读取/root/.bash_history发现失败,可能是管理员删除了。
读取/etc/rc.local
技术图片
文件挨个下载看一遍发现读取到/usr/local/ac/bin/preload这个文件时,打开发现/etc/ac_preload.sh的脚本
技术图片
脚本中发现tomcat安装路径。
技术图片
读取server.xml发现web目录。
技术图片
4、审计源码找上传
读取web.xml
技术图片
读取structs-config.xml,找到俩处上传点,这俩写的都有问题,只看SwuploadAction这一块代码。
技术图片
下载SwuploadAction代码。http://xxx.xxx.xxx.xxx/DownloadServlet?fileName=../../../usr/local/ac/web/ac-web/WEB-INF/classes/com/gbcom/business.action.sysoper.SwUploadAction用jd-gui反编译。通过代码发现上传代码并没有过滤,找到上传路径。后台页面找到上传点,由于后台前端上传组件限制后缀,直接通过burp绕过。最终getshell。
技术图片
仔细看上图199行,开始以为存在命令注入。后来文件名尝试注入a.sh|curl http://vps发现命令执行不了。查文档发现下面这样写才能注入命令

java.lang.Runtime.getRuntime().exec(new String[]{ "cmd", "/c", "calc|注入的命令"});

后来,挂上代理打内网。发现内网好多路由交换设备,默认admin/admin都能登陆。发现自己搞的站和目标不一致,内网就没在深入。

第二个站

后台地址直接出来,弱口令失败。
技术图片
右键源码发现
技术图片
后台找到上传点,尝试上传绕过。开始url请求的filename没有参数。发现加上参数能直接写入jsp,修改post请求体的filename,直接就被waf拦截。最后通过GIF89a文件头绕过。
技术图片

最后总结下:

实战中需要黑白盒一起搞,细心很重要。

以上是关于实习时项目案例分享的主要内容,如果未能解决你的问题,请参考以下文章

java开发的项目案例,大厂内部资料

商汤科技面试——实习面试案例总结

分享几个实用的代码片段(附代码例子)

分享几个实用的代码片段(附代码例子)

校外实习项目需求说明文档——会员系统

内推分享|白宫实习项目/JP Morgan/京东美国/MongoDB/电商平台