代码审计基础
Posted sea༄༅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码审计基础相关的知识,希望对你有一定的参考价值。
1.函数
addslashed()添加反斜杠
stripslashed()去掉反斜杠
get-magic-quotes-gpc()判断是否开启gpc
expode()分割成数组
is-numeric()判断是否为数字
sizeof()判断长度
trim()去除字符串开头和末尾的空格和其他字符
string 必需 规定要解析的字符串
htmlspecial(charsl)函数把预定义的字符串转换为HTml实体
preg-replace 执行一个正则表达式的搜索和替换
2.命令注入(执行)
函数:systeml()、passthru()、popen()、exec()
数据库操作函数:exec()、system()、popen()、passthru()、proc-open()、shell-exec()
执行命令的管道符:%/>
3.SQL注入
SQL注入漏洞原理是由于开发者在编辑操作系统数据库代码时直接外部可控的参数拼接到SQL语句中,没有单引号的保护
concat()函数是将两个字符串连接起来,形成一个单的字符串
注入点类似id=1这种整型的参数就会完全天视GDC的过滤,传入的参数未做intval转换,构造的sql语句没有单引号的保护
注入点包含键值对的,那么这里只检测了value,对key的过滤没有保护
(1)数字型注入防范
is_numerc()ctype_digit()intreal()
str_length()确定长度
(2)//字符型sql注入过滤
$id = stripslashes($id);
$id = mysql_real_escape_string($id);
(3)字符型注入防范
mysql_real_escape_string()
数据库查询语句前加@放报错
str_length()确定长度
4.HTTP响应拆分
HTTPonly设置 domain设置 path设置 cookies持续时间 secare设置 session固定 CSRF
5.加密
彭文存储密码 ,密码弱加密
密码在存储在攻击者能访问到的文件
6.认证和授权
用户认证 函数和文件的未认证调用 密码和硬编码
7.随机函数
rand() mt_srand() mt_rand()
8.php危险函数
缓冲区溢出 session_destroy()删除文件漏洞
unset() zend_hash_del_key_or_irdex漏洞
以上是关于代码审计基础的主要内容,如果未能解决你的问题,请参考以下文章