day40WEB攻防-通用漏洞&CSRF&SSRF&代码审计&同源策略&加载函数

本章知识点:
1 CSRF- 审计 - 复现测试 & 同源策略
2 SSRF- 审计 - 功能追踪 & 函数搜索
配套资源(百度网盘)
链接:https://pan.baidu.com/s/1ex5ScpIgxwcRiZH6v51eig?pwd=8nky 
提取码:8nky

代码审计-CSRF-SCMSFH 无验证

 CSRF

1,直接复现有没有

成功->有漏洞,失败->代码->缺陷过滤(绕过)->有漏洞,失败->代码->完整过滤->没有漏洞   

其它漏洞:关键函数和应用功能

直接复现,存在漏洞

                                                                                                                     

代码审计

if($A_login!=""){
		if(preg_match('/<|\(|\*|--|#| |\'|"|\.\//i', $A_login)){
			die("{\"msg\":\"用户名含有特殊字符,请重新输入\"}");
		}
		if($A4_0x==1){
			if($A_pwd!=""){
				mysqli_query($conn, "update sl_admin set
				A_head='$A_head',
				A_login='$A_login',
				A_part='$A_part',
				A_pwd='".md5($A_pwd)."'
				where A_id=".$A_id);
			}else{
				mysqli_query($conn, "update sl_admin set
				A_head='$A_head',
				A_login='$A_login',
				A_part='$A_part'
				where A_id=".$A_id);
			}
		}else{
			if($A_pwd!=""){
				mysqli_query($conn, "update sl_admin set A_head='$A_head',A_pwd='".md5($A_pwd)."' where A_id=".$A_id);
			}else{
				mysqli_query($conn, "update sl_admin set A_head='$A_head' where A_id=".$A_id);
			}
		}
		
		mysqli_query($conn, "insert into sl_log(L_aid,L_time,L_add,L_ip,L_title) values(".$_SESSION["A_id"].",'".date('Y-m-d H:i:s')."','".$_SESSION["add"]."','".getip()."','编辑管理员')");
		die("{\"msg\":\"success\",\"id\":\"".$A_id."\"}");
	}else{
		die("{\"msg\":\"请填全信息\"}");
	}
}

通过阅读代码我们发现,源码只对自身的信息正确与否做出了判断,并没有对数据的请求来源做出判断,也没有判断当前操作会不会有危害,总之就是除了对数据本身进行了验证并没有别的多余验证,因此可能存在csrf漏洞。

代码审计-CSRF-ZBLOG 同源策略

直接复现漏洞,发现不存在

代码审计

根据请求头确定代码路径,找到对应代码。

 case 'MemberPst':
        CheckIsRefererValid();
        PostMember();
        $zbp->BuildModule();
        $zbp->SaveCache();
        $zbp->SetHint('good');
        Redirect('cmd.php?act=MemberMng');
        break;

function CheckIsRefererValid()
{
    global $zbp;
    $flag = CheckCSRFTokenValid();
    if ($flag && $zbp->option['ZC_ADDITIONAL_SECURITY']) {
        $flag = CheckHTTPRefererValid();
    }

    if (!$flag) {
        $zbp->ShowError(5, __FILE__, __LINE__);
        exit;
    }
}

function CheckHTTPRefererValid()
{
    global $bloghost;
    $referer = GetVars('HTTP_REFERER', 'SERVER');
    if (trim($referer) === '') {
        return true;
    }
    $s = $bloghost;
    $s = str_replace(':80/', '/', $s);
    $s = str_replace(':443/', '/', $s);
    if (stripos($referer, $s) === false) {
        return false;
    }

通过阅读源码发现,检测了HTTP Referer是否合法,检测了来源

代码审计-SSRF-Yzmcms 功能&函数

听不懂听不懂!!! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值