搜索
查看: 873|回复: 0

Pims_v4.2.7 sql注入漏洞

[复制链接]

1839

主题

2255

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11913
发表于 2017-1-31 23:10:45 | 显示全部楼层 |阅读模式
再次非常感谢@A组~逗比   哈哈哈哈哈哈哈

在controller目录下的buy.php文件,

直接获取fromurl作为参数并赋值给myurl2,继续跟进,发现

myurl2又赋值给url2参数。
既然fromurl参数有漏洞,那么全局搜索fromurl,看哪里调用了它,

在controller目录下的admin.php文件,


如果直接访问index.php?c=buy&a=saveorder是无法访问的。
得生成订单页才行,

需要在后台添加产品

发现有把url2入库

但是在添加订单的post请求中,没有url2参数

就算我手动添加url2参数,数据库里也不会有任何改变,一直是手动添加,

那我就跟进代码,代码在savemyorder函数中(因为是单文件入口,都会通过index.php这个文件来接收并转发到功能代码,而controller则代表着控制器,它的值对应controller文件夹下的类文件名和类名)

果然,url2参数在添加订单这里是写死的

那么这里想的话,应该是得改fromurl的值,因为fromurl会把值传给url2,
继续往下走,
然后添加订单组,然后生成订单页

生成以后,会在根目录生成order.html文件


生成的玩意order.html是这样的

但是我跟过去的生成的订单页的代码是这样的,
代码在controller目录下的admin.php文件中的getform函数中


按照代码来说,应该生成的页面中应该要有银行卡账号、支付方式。
然后我点立即提交订单是空白的,并且fromurl参数不入库



点击立即提交订单就会出现fromurl参数

这里又回到了buy.php文件了,因为这里提交订单的调用的url是
查看saveorder函数,发现这里应该是要把post的fromurl传参入库的

但是这里我无论怎么改fromurl参数,数据库里面的url2值也不变。
后来才发现,没入库的原因在没把参数请求完整
首先这里有个判断语句,如果没有这四个参数则返回back

并且还需要个Pay参数

最后post的数据就会入库


但是这个文件并没有调用数据库查询,因为是订单的相关文件,于是搜索order,看哪个文件调用了数据库查询,发现根目录下的showresult.php文件调用了数据库(如果这里不利用搜索order来找到文件,也可以用其他办法,比如一开始发现url2入库的地方是在添加订单那里,那一般表名都是order,或者是搜索url2列在哪个表里的话,也能发现在订单order表里。

又或者是,因为一开始发现是fromurl参数有漏洞,那么他最后赋值给url2变量有漏洞,也就是说某个表里的url2列的字段值有漏洞,最后再搜索哪个文件调用查询了这个表即可)

直接把key作为参数即可从数据库开始查询。那么如果url2或者其他参数有问题,变成了sql注入语句的话,就可利用恶意语句查询敏感信息。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?Join BUC

x
过段时间可能会取消签到功能了
您需要登录后才可以回帖 登录 | Join BUC

本版积分规则

Powered by Discuz!

© 2012-2015 Baiker Union of China.

快速回复 返回顶部 返回列表