ZZCMS201910审计入门和SQL注入

ZZCMS201910审计入门和黑名单SQL注入

1.一个小白来说,代码审计的路线可能一开始不会清晰,但是多练习和多接触,了解多了其实也就这么回事。代码审计其实就是对源码白盒测试,千万先记住一点,任何产生交互的地方都完全存在漏洞;再多记住一点,看代码的时候那些被写死的字符串,输出内容真的没有必要去在意和阅读;(当然前提还是要会一些php不然搞不来)。

2.一个php项目,请务必先测试和找到它的入口,(可能是单或多); 因为按照php的风格她一定会对客户端提交的数据有一定程度的处理。了解这个是挖掘每一个php项目漏洞的先决条件。由于是入门学习,zzcms是存在一个统一入口处理提交变量的方法…/inc/stopsqlin.php。

/*首先如何寻找这个文件,我认为每个人习惯可能不一样;但是我这里发现了有好几种方式;
一、在浏览器不同网页下多尝试可能提交参数的地方,或者自己构造参数;zzcms主页下我构造了?id=<script 后,显示"无效参数";之后全局只找到一个文件存在这个字符串;
二、sexy自动审计根据爆出:存在 @extract($_GET); 可能会存在变量覆盖漏洞;熟悉extract的人一定会觉得这是必须要看一下的地方,从而找到;
三:根据项目下不同文件夹下的命名预测缩小范围,再在指定目录下搜索存在addslashes和htmlspecialchars所存在的文件,也能很快找到;
*/

3.对入口过滤方法的分析:

//stopsqlin.php
function zc_check($string){
   
	if(!is_array($string)){
       //如果不是数组进入
		if(get_magic_quotes_gpc()){
     //这个是本意是对'/<'这些字符进行转义,但是5.4版本后移除,所以为false,写上是为了低版本的兼容性
	 	return htmlspecialchars(trim($string));  //经过去首位空格(trim)和防止xss注入(htmlspecialchars)过滤后返回
		}else{
         //上面是兼容性写法,一般都会进入这里
		return addslashes(htmlspecialchars(trim($string)));
		}             //addslashes是防止sql注入对字符过滤
	 }
	 //如果是数组将先使用foreach将数组的键值拆分,再递归调用值进行上面的字符过滤
	foreach($string as $k => $v) $string[$k] = zc_check($v);
	return $string;
}
	
if($_REQUEST){
   
	$_POST =zc_check($_POST);      //提供该方法所传变量都将经过上面zc_check函数过滤
	$_GET =zc_check($_GET);
	$_COOKIE =zc_check($_COOKIE);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值