简介:文章分为三部分:1、概要;2、详细的思维导图;3、详细的解说。
描述:概要包括该文介绍的知识点;详细的思维导图更好地理清思路,方便记忆,但对于有些对于作者比较基础的内容不会有详细的解释,建议主动了解;详细的解说作者会根据思维导图的纲要添加代码语句等内容,有时间会添加具体操作,具体步骤,操作结果等内容,添加需要注意的Tips(蓝色字体怎样)。
前面的话:操作学习的环境----Linux环境+docker+sqli-labs。环境配置请看:第一章:SQL注入基础--1.1Web应用架构分析&1.2 SQLi注入环境搭建或私信我亲测有效的资源给你。
Tips:这些都是作者学习过的内容,文字、思维导图等都是一双手,后续会连载这系列以及丰富流程说明,欢迎沟通交流、留言,觉得必要的也可收藏关注
1、概要:
1.5 SQL注入流程(没有时间去把详细的每一个步骤都写上操作语句和过程截图,有时间再写,不过这小节也主要是大的流程的介绍为主,后面的章节会细化所有的操作过程)
寻找SQL注入点
目标收集
SQL注入的识别
手工简单识别
工具识别
高级识别
SQL注入流程
信息收集
数据获取
提权
2、详细的思维导图:
3、详细的解说:
1.5 SQL注入流程
寻找SQL注入点
目标收集(可以在浏览器试一下,Google搜索引擎更棒哦,主要是查出来的会多是国外的,你懂的)
无特定目标:inurl:.php?id=
有特定目标:inurl:.php?id=site:target.com
工具爬取:spider,对搜索引擎和目标网站的链接进行爬取
SQL注入的识别(可以在部属好的sqli-labs的Less-1测试一下)
手工简单识别
'
and 1=1/and1=2
and '1'='1/and '1'='2
and 1 like 1/and 1 like 2
工具识别(前面忘记说,linux最好是安装kaili,里面集齐了诸多渗透神器,sqlmap可直接用)
sqlmap -m filename(filename中保存检测目标)
sqlmap --crawl(sqlmap对目标网站进行爬取,然后依次进行测试)
高级识别
扩展识别广度和深度:
SqlMap--level增加测试级别,对header中相关参数也进行测试(如cookie)
sqlmap-r filename(filename中为网站请求数据,请求数据保存到文件)
利用工具提高识别的效率(可以自己测试下)
BurpSuite +SqlMap
BurpSuite拦截所有浏览器访问提交的数据
BurpSuite扩展插件,直接调用SqlMap进行测试
一些Tips
可以在参数后键入“*”来确定想要测试的参数
可能出现注入的点:新闻、登录、搜索、留言..…
站在开发的角度去寻找
代码审计:select、post/get
搜索关键代码和函数
梳理业务流程
SQL注入流程
信息收集
数据库类型
报错信息
check the manual that corresponds to your
MySQL server version for the right syntax--mysql
Microsoft JET DatabaseEngine 错误‘80040e14'--Access
特有语句
函数:version();2、@@version
两者都--mysql
仅@@version--sqlserver
v$version--oracle
数据库版本
数据库用户
user()--mysql
SYSTEM_USER--sql server
判断数据库权限
super_priv--mysql
IS_SRVROLEMEMBER--sql server
数据获取(这个流程是需要非常明确的)
获取数据库信息
获取当前库
获取所有表
获取表信息
获取列信息
获取数据
提权(如果只是检验漏洞是否存在,前面足够了)
根据数据库权限
执行系统命令
直接提权
SQL Server sa权限
读文件
读取数据库配置文件,尝试远程链接
读中间件配置文件,搜集信息
写文件
写webshell到网站目录