50代码审计-PHP无框架项目SQL注入挖掘

代码设计分为有框架和无框架

挖掘技巧:随机挖掘,定点挖掘,批量挖掘(用工具帮助扫描探针,推荐工具: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

相关推荐
沐晓时光4 小时前
C语言入门,内存函数知识讲解
c语言·开发语言
这个DBA有点耶9 小时前
库内计算推理:一条SQL背后的算子融合,和外挂方案差了几次网络往返
数据库·人工智能·sql
David猪大卫10 小时前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
fengci.12 小时前
CTF2MISC中等部分
开发语言·前端·学习
xys_67813 小时前
JavaEE通关手册:初识Java
java·开发语言
ShineWinsu14 小时前
对于Qt:QTableWidget常见属性以及QTableWidgetItem类的解析
开发语言·c++·qt·gui·客户端·表格·qtablewidget
ShineWinsu15 小时前
对于Qt:QListWidget常见属性以及QListWidgetItem类的解析
开发语言·c++·qt·客户端·列表·qlistwidget·qlistwidgetitem
吴名氏.16 小时前
Java转AI Agent教程(第十二周)检索与切分
java·开发语言·人工智能·ai·ai agent
瑞雪兆丰年兮16 小时前
JavaWeb-day10-SpringBootWeb案例
java·开发语言·javaweb·web
Elastic 中国社区官方博客16 小时前
更少的位数,相同的召回率:DiskBBQ 更保守的自动校准扫描
大数据·运维·开发语言·人工智能·elasticsearch·搜索引擎