代码审计phpmps

前台用的是htmlspecialchars_deep这个函数过滤的 输出都是HTML实体转义的 XSS应该没啥办法了


接收数字参数的时候都是用intval强制转换成int


后台设置webname这里


b不知道用三目运算符是什么意思  第一个直接接收 后面过滤也是去掉左右的字符  也没过滤其他的字符


后台设置webname处XSS


然后测试删除日志这里  因为是管理员操作的界面  首先想到有没有越权

看一眼代码  在这块是没有看到需要验证权限的代码  再看看其他的地方有没有引入其他的代码


在最开始引入了一个common.php


追踪过去看一下


主要验证权限代码

if(empty($_SESSION['adminid']) && !strstr($_SERVER['SCRIPT_FILENAME'],'login.php')){

    header("Location: ./login.php?act=login");

    exit;

} elseif($_SESSION['adminid']) {

    $adminid = $_SESSION['adminid'];

    $adminname = $_SESSION['adminname'];

    $adminpass = $_SESSION['adminpass'];


    $admin = $db->getone("SELECT * FROM {$table}admin WHERE username='$adminname' AND password='$adminpass' ");

    if(empty($admin))show("管理员不存在");

}

先去session里面取出adminid并判断是否为空。。所以这里没有啥越权

那就看下删除这里有没有注入漏洞


又是用的三目运算符

左边数组肯定不行了  然后用,连接这个貌似也不行 最后一个也是强制转换成int  这块应该也是没有漏洞

再看下下面功能

添加导航的功能  这块是接收数据入库的代码

这里也没什么过滤  只是用trim函数去掉了左右两侧空白字符和预定义字符

直接输入 提交


然后试下sql注入 输入的字符串太长好像后面的就会被去掉



然后下一个功能上传flash


用的白名单验证  可以试下00截断  然后走到checkupfile里面的is_uploaded_file就断了。。



后台基本都是数据增删改查的功能  应该都有XSS其他漏洞应该没有  后台的功能很少

你可能感兴趣的:(代码审计phpmps)