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

相关推荐
Lhappy嘻嘻8 小时前
Java IO|File 文件操作 + 字节流 / 字符流完整笔记 + 递归删除文件实战
java·笔记·php
科技道人8 小时前
记录 默认置灰/禁用 app ‘Search Engine Selector‘ 的disable按钮
开发语言·前端·javascript
逝水无殇10 小时前
C# 异常处理详解
开发语言·后端·c#
2601_9637713710 小时前
How to Scale Your WordPress Store Traffic in 2026
前端·php·plugin
龙仔72511 小时前
SQL Server 创建只读账号完整操作(分两种场景:SSMS图形界面 + T-SQL脚本)
数据库·sql·oracle
玖玥拾12 小时前
C# 语言进阶(十五)C# 游戏服务端 MySQL 数据库
服务器·开发语言·网络·数据库·mysql·c#
铅笔侠_小龙虾12 小时前
Rust 学习目录
开发语言·学习·rust
云泽80813 小时前
从零吃透 C++ 异常:抛出捕获、栈展开、异常重抛与编码规范详解
开发语言·c++·代码规范
灯澜忆梦13 小时前
GO---可见性规则
开发语言·golang
逝水无殇13 小时前
C# 文件的输入与输出详解
开发语言·数据库·后端·c#