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

相关推荐
JaguarJack4 分钟前
Whim 是什么?一门把 PHP 被否决的设想真跑起来的实验语言
后端·php·服务端
野生技术架构师12 分钟前
1200 道 JAVA 面试题(各大企业常见面试题及答案)
java·开发语言
“AI国潮设计-小江”21 分钟前
【Python/SDXL实战】潮汕国潮IP视觉落地:普宁美食猫IP & 创意甜品设计(附ComfyUI工作流思路)
开发语言·人工智能·python·prompt·aigc
Yyyyyy~39 分钟前
【java】类和对象
java·开发语言
草莓熊Lotso1 小时前
【Redis 进阶】主从复制深度解析:从配置落地到 PSYNC 同步原理
linux·开发语言·网络·数据库·redis·缓存·php
Joy T1 小时前
Spring AI 2.0 进阶入门:Workflow、Routing、Task State 与可控 Agent
开发语言·人工智能·workflow·routing·springai·orchestrator·evaluator
重生之小比特1 小时前
【Java SE】抽象类和接口
java·开发语言
传奇开心果编程1 小时前
【Rust入门知识点学与练】第33课:异步编程入门(async/await)强化
开发语言·学习·rust
传奇开心果编程1 小时前
【Rust入门知识点学与练】第34课:所有权与借用
开发语言·学习·rust
shirsl2 小时前
数据开发每日面试题 Day 5
大数据·数据库·sql·big data