0x01: 搜索所有的用户可控变量(GET/POST/COOKIE/referer)
原因:所有用户输入都是有害的,代码审计注重函数和变量,先看看在什么地方会有输入
可能出现的场景:
a) id=$_GET['id'];
可能存在的问题:
无过滤的SQL注入:
WooYun: chshcms 程氏CMS V30 注射(已在官方演示站测试)
1
$id=trim($_GET["id"]);
//下面直接就进查询语句了
1
if($db->query("update "Getdbname('dance')" set CS_TID="$tid" where cs_user='"$cscms_name"' and
当然,这是GET之后没做过滤的情景
b) id=intval($_GET['id']);
可能存在的问题:intval对字符型无用,字符型变量是怎么处理的呢?
如果字符型的addslashes,注意数字型盲注(见c2分析)
c) $tid=XX_Request("tid");
使用自己定义的安全过滤函数处理变量,很常见,很多框架都提供了解决方案,不过自己包装一个也是很常见的
可能存在的问题:
c1) 有没有忘记使用这个处理函数?
WooYun: chshcms 程氏CMS V30 注射(已在官方演示站测试)
$tid=CS_Request("tid"); //使用安全的CS_request addslash
$id=trim($_GET["id"]); //呵呵呵,曲项向天歌,CS_Request哭了
其实还是上面那个例子,自己忘了用这函数过滤了
c2) 函数本身是否安全?
WooYun: (新)程氏舞曲CMS 三步GETSHELL(实例演示+源码详析)
$t_Val = $magictrim($_GET[$pi_strName]):addslashes(trim($_GET[$pi_strName]));
使用了addslashes,这就意味着逃脱单引号难度加大,需要寻找没有单引号保护的语句注入
addslashes只处理单引号和斜杠,因此无法过滤形如 134 and 1=1 这样的注射语句,请自行百度无单引号盲注
在下面的语句中,$cscms_name就是有单引号保护的,而$id是没有单引号保护的
$db->query("update "Getdbname('xiaoxi')" set CS_DID=1 where CS_ID="$id" and cs_usera='"$cscms_name"'");
所以id引发了盲注
c3) 过滤函数能否满足业务逻辑的特殊需求?
负数订单啦,自己修改自己的投票数啦,各种业务逻辑上的问题都有可能发生
非常可惜,这个我还没撞见过,如果以后撞见再更新到文章里
d) 不要忘记我们能控制referer等变量
可能存在的问题:
虽然发现GET/POST都过滤处理了,但是referer和cookie容易被忽视
$_SERVER[">
具体方法:
服务器站点创建好后进入Gworg获得SSL证书配置。确定>
安装好网站程序后网站后台就支持>
老站升级>
以上就是关于如何发现php wangye loudong全部的内容,包括:如何发现php wangye loudong、appcms上传后台上传https链接怎么改、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)