PIMS三个漏洞+里程密最新版V2.3 SQL注入漏洞

时间:2022-05-06
本文章向大家介绍PIMS三个漏洞+里程密最新版V2.3 SQL注入漏洞,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

pims在线订单管理系统V4.2.7重装漏洞

程序整天结构如下

安装程序在install目录下,虽然index有验证,代码如下

<?php
//检测重复安装
if (is_file("install.locked")) {
echo "<script>alert('已经安装过,建议删除install文件夹以确保安全');";
echo "location.href='../index.php?c=admin&a=index';</script>";
exit;
}
?>

但是这个index.php只是一个类似于html的页面,并没有实际意义,连接数据库并写入数据的是install这个目录下的另一个文件,step2.php。

虽然也有验证,但是只是一个很简单的验证,代码如下

<?php

//检测是否同意协议

if ($_POST[xieyi]!="1") {

echo "<script>alert('您不同意授权协议,安装程序未运行');location.href='index.php';</script>";

exit;

也就是说,我只要post一个xieyi=1即可绕过这个同意协议。

我先只是post一个xieyi=1,如图

实际上已经绕过了一个很简单的判断,只是再post一个数据库账号密码这些即可重装。

我先正常安装,账号密码设置为admin/admin,如图

然后直接对step2.php进行post,如图

直接就能前台重装成功,密码为新的密码,为123456,如图

Pims_v4.2.7 sql注入漏洞

在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注入语句的话,就可利用恶意语句查询敏感信息。

Pims_v4.2.8后台getshell漏洞

一般都是看下后台有哪些输入的地方,更改这些输入的地方后又有哪个文件被更改,就比如常见的如discuz后台getshell,更改配置文件config.php等。

Pims_v4.2.8后台有个快递追踪设置,如图

发现所对应的文件是include下的kuaidi.php

那直接更改授权key就能getshell了

里程密最新版V2.3 SQL注入漏洞

起因:


“1.关闭DEBUG 不会再报出错误信息 也不会在有SQL注入”不再有sql注入,不能忍啊,瞧一瞧!

url:
http://localhost/phpshenji/lichengmi/index.php?m=home&c=category&a=index&id=10
这个前面讲过了,该如何找url所对应的代码
前台(后台)都一样,都有SQL注入。

CategoryController.class.php

class CategoryController extends BaseController {
    public function index(){
        $id = I('get.id');
        $m =M('category');
        $fenleiInfo = $m ->where("id ={$id}")->find();

获取id直接传参,貌似没使用thinkphp框架的防注入措施

那不能怪我了。 加个(闭合 http://localhost/phpshenji/lichengmi/index.php?m=home&c=category&a=index&id=10) and sleep(5) --+

这里只能用时间盲注。 但是用比如 if (ascii(substring(()),1,1)>111,sleep(5),1)都不好使(大家可以试试) 但是可以用以下方法突破