前台用的是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函数去掉了左右两侧空白字符和预定义字符
直接输入<script>alert(1)</script> 提交
然后试下sql注入 输入的字符串太长好像后面的就会被去掉
然后下一个功能上传flash
用的白名单验证 可以试下00截断 然后走到checkupfile里面的is_uploaded_file就断了。。
后台基本都是数据增删改查的功能 应该都有XSS其他漏洞应该没有 后台的功能很少