代码审计安全实践

一、代码审计安全

代码编写安全:

程序的两大根本:变量与函数

漏洞形成的条件:可以控制的变量“一切输入都是有害的 ”

变量到达有利用价值的函数(危险函数)“一切进入函数的变量是有害的”

漏洞的利用效果取决于最终函数的功能,变量进入什么样的函数就导致什么样的效果。

变量安全:

秉承一个原则 “一切输入都是有害的”

预定义变量[常规外部提交的变量]:

除了 G E T , _GET, GET_POST, C o o k i e 的提交之外,还来源于 _Cookie的提交之外,还来源于 Cookie的提交之外,还来源于_SERVER,$_ENV, $_SESSION 等register_globals = on [未初始化的变量] 当On的时候,传递过来的值会被直接的注册为全局变量直接使用,而Off的时候,我们需要到特定的数组里去得到它,PHP » 4.20 默认为off

变量覆盖[未初始化及覆盖前定义的变量]:

如:$$使用不当、遍历初始化变量、 extract() 、parse_str()等

变量的传递与存储[中转的变量]:

存储于数据库、文件[如配置、缓存文件等

函数安全:

“什么样的函数导致什么样的漏洞”

文件包含包含漏洞:require、include、require_once、include_once

代码执行执行任意代码漏洞:eval()、assert()、preg_replace()、create_function()

命令执行执行任意命令漏洞:exec()、passthru()、proc_open()、shell_exec()、system()、popen()

文件系统操作文件(目录)读写等漏洞:file_get_contents、file_put_contents、fopen、readfile

数据库操作SQL注入漏洞:select from、mysql_connect、mysql_query、mysql_fetch_row 数据显示 XSS漏洞:print、print_r、echo、print、sprintf、die、Var_dump、var_export

二、代码审计和漏洞验证:

环境:

​ PHP.ASP等语言环境

​ Apache.Tomcat.Ngin等中间件

​ Mysql.Oracle等数据库

工具:

​ Notepad++、Sublime等代码编辑器

​ Seay.RIPS等代码审计工具

​ Burp等漏洞验证工具

三、常见漏洞挖掘与防范:

根据功能点定向审计,例如在文件上传功能模块、文件管理功能模块、登录功能等模块进行漏洞挖掘验证。

通读全部代码

四、安全编程规范:

1.SQL注入防护

​ (1)采用预编译,在Java Web开发一般在采用预处理,在sql语句中放入?占位符,然后通过后面的传参传递参数,可在一定程度上防止SQL注入。

​ (2)过滤函数和类, 使用pdo的prepare方式来处理sql查询,但是当PHP版本<5.3.6之前还是存在宽字节SQL注人漏洞,原因在于这样的查询方式是使用了PHP本地模拟prepare,再把完整的SQL语句发送给MySQL服务器,并且有使用setnames’gbk’语句,所以会有PHP和MySQL编码不一致的原因导致SQL注人

​ (3) GPC/RUTIME魔术引号

​ 通常数据污染有两种方式:

​ 1、是应用被动接收参数,类似于GET、POST等;

​ 2、是主动获取参数,类似于读取远程页面或者文件内容等。

所以防止SQL注入的方法就是要守住这两条路

→ magic_ quotes_ gpc 负责对GET、POST、COOKIE的值进行过滤。

→ magic_ quotes_ runtime 对从数据库或者文件中获取的数据进行过滤。

\2. 反引号命令执行

反引号()也可以执行命令,它的写法很简单,实际上反引号()执行命令是调用的shell_exec()函数。

img

这段代码正常执行的情况下是会输出当前用户名的,而我们在php.ini里面吧PHP安全模式打开一下,再重启下WebServer从新加载PHP配置文件,再执行这段代码的时候,我们会看到下面这个提示:

Waring:shell_exec() [function.shell_exec]: Cannot execute using backquotes inSafe Mode in D:\www\test\1.php on line 2

这个提示说明反引号执行命令的方式是使用的shell_exec()函数。

3.命令执行漏洞防范规范:

Mode in D:\www\test\1.php on line 2


 

这个提示说明反引号执行命令的方式是使用的shell_exec()函数。

 3.命令执行漏洞防范规范:

(1) 命令防注入函数: PHP在SQL防注入上有addslashes()和mysql_[real_]escape_string()等函数过滤SQL语句,输人一个string类型的参数,为要过滤的命令,返回过滤后的sting类型的命令,过滤后的string类型的命令,过滤的字符为

#  网络安全基础入门需要学习哪些知识?

## 网络安全学习路线

这是一份网络安全从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!

![img](https://img-blog.csdnimg.cn/d94b77bc9eee4d11abab8604ea7d2a64.png)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v19T846c-1677167179814)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]编辑

##  阶段一:基础入门

![img](https://img-blog.csdnimg.cn/img_convert/d8ad143de3b89a20307179b8d44c4f6f.png)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sRoDZu4K-1677167179814)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]

> 网络安全导论
>
> 渗透测试基础
>
> 网络基础
>
> 操作系统基础
>
> Web安全基础
>
> 数据库基础
>
> 编程基础
>
> CTF基础

**该阶段学完即可年薪15w+**

## 阶段二:技术进阶(到了这一步你才算入门)

![img](https://img-blog.csdnimg.cn/img_convert/8d47774ee74b3a902b1deb00d3fb26f7.png)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-il25GFVz-1677167179815)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]



> 弱口令与口令爆破
>
> XSS漏洞
>
> CSRF漏洞
>
> SSRF漏洞
>
> XXE漏洞
>
> SQL注入
>
> 任意文件操作漏洞
>
> 业务逻辑漏洞

**该阶段学完年薪25w+**

## 阶段三:高阶提升

![img](https://img-blog.csdnimg.cn/img_convert/86eba8b6ea97417700bfc245ed75dea0.png)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ITOSD3Gz-1677167179816)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]





> 反序列化漏洞
>
> RCE
>
> 综合靶场实操项目
>
> 内网渗透
>
> 流量分析
>
> 日志分析
>
> 恶意代码分析
>
> 应急响应
>
> 实战训练

**该阶段学完即可年薪30w+**

## 阶段四:蓝队课程

![img](https://img-blog.csdnimg.cn/img_convert/385c5927bfeb1e4310d5fd914aa6dfe7.png)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SKCwwld2-1677167179818)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]



> 蓝队基础
>
> 蓝队进阶
>
> 该部分主攻蓝队的防御,即更容易被大家理解的网络安全工程师。

**攻防兼备,年薪收入可以达到40w+**

## 阶段五:面试指南&阶段六:升级内容

![img](https://img-blog.csdnimg.cn/img_convert/3b653137f34ce068817347b444447b6c.png)

需要上述路线图对应的网络安全配套视频、源码以及更多网络安全相关书籍&面试题等内容



< img src="https://hnxx.oss-cn-shanghai.aliyuncs.com/official/1678694737820.png?t=0.6334725112165747" />
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值