代码审计基础

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漏洞

 

 

 

以上是关于代码审计基础的主要内容,如果未能解决你的问题,请参考以下文章

PHP代码审计SQL注入篇

2020/1/31 PHP代码审计之目录穿越漏洞

2020/1/29 PHP代码审计之XSS漏洞

Java代码审计

Java代码审计之RCE远程命令执行

记一次腾讯SDK源代码审计后的CSRF攻击