代码设计分为有框架和无框架
挖掘技巧:随机挖掘,定点挖掘,批量挖掘(用工具帮助扫描探针,推荐工具:fortify,seay系统)。
1.教学计划:
---审计项目漏洞 Demo->审计思路->完整源码框架->验证并利用漏洞
2.教学内容:
---PHP,JAVA 网站应用,引入框架类开发源码,相关审计工具及插件使用
3.必备知识点:
---环境安装搭建使用,相关工具插件安装使用,掌握前期各种漏洞原理及利用
代码审计开始准备
这个目标的程序和版本,当环境(系统,中间件,脚本语言)等信息。因为语言的不同的版本,语言的类型和自身的环境,可能会造成一些漏洞在验证利用的时候有些问题; 比如那个魔术引号,他是hi可以在php的控制面板里面开启或者关闭的,假如网站是没有启用这个过滤,但是自己的环境有这个过滤,在测试验证的时候就会出现误报,
代码审计挖掘漏洞根本
可控变量以及特定的函数(例如xss的echo,文件包含的include),这个函数绝对他出现什么样的漏洞,不存在过滤或者过滤不严谨导致安全漏洞,
这里include函数包含数据库配置文件,需要数据库配置文件才能建立连接。
赋值给变量id,带入到羡下面的sql语句里面去了,
在被mysql_query函数,当作数据库语句执行,必须有这个函数才会被执行为sql语句
然后这里老师自己添加了一个ehco输出函数,输出变量sql,如果id拼接上xss的语句,也输出出来,就又产生一个xss漏洞。
关键字搜索定点挖掘漏洞的思路
要找可控变量:变量接受get post 接受关键字$_GET
特定函数:输出去函数,print啊,数据库操作函数如mysql_query,文件包含函数(include)等等
还有特定关键字:select insert update 这一类sql注入的语句,对应的就是sql注入的漏洞
搜索特定关键字尝试寻找特定漏洞:
如搜索echo print尝试挖掘的xss漏洞
搜索$_GET $_POST 尝试挖掘的就是安全漏洞
这是一个大概思路,所有的漏洞都会有自己对应的点,根据那些关键字或者特定函数去找,不要局限上面打的比方。
功能点定点挖掘漏洞的思路
比如:我要挖掘文件上传的漏洞,比如文件会员中心有文件上传的操作的地址,抓包分析找到源码中的特定文件代码段,进行文件上传代码分析挖掘。
这个就外面找到上传操作地址,进行一个抓包操作,分析道抓包的地址,提供抓包地址分析到特定源码文件的代码段,在从代码段去分析,看他文件上传在接收和处理过程中也没有安全问题。
通过网站源码cms给到的功能,来分析这个功能有那那些功能,功能又对应那些漏洞,
扩展知识,二次注入
,二次注入利用,骑士cms是一个求职的网站。他有转义过滤,里面可以编写自己的简历的,在编写的似乎,这些信息都会录入数据库,然后找到编写建立的时候,可以自主控制的参数,同时又能拼接到insert 添加函数的语句,用aa'.'finame'=user()#;
插入到语句里面载入到数据库里面就是又变回来原来的语句了
再去查看简历的时候,就引用到了函数,就触发了。
fa
cai