渗透(二)之SQL注入环境搭建,Mysql, 注入流程

SQL注入

当客户端提交的数据未作处理或转义直接带入数据库就造成了SQL注入

web框架

在这里插入图片描述

SQL环境搭建

使用GitHub上开源的sqli-labs https://github.com/Audi-1/sqli-labs

1安装php +Mysql+Apache

下载WAMP,安装
下载Sqli-labs配置运行

2安装Docker版本

下载docker
下载Sqli-labs配置运行

SQL注入原理

灵活的SQL查询语句+用户输入的数据带入了SQL语句=用户直接操作数据库->SQL注入漏洞

思路

php后端的SQL语句:
SELECT * FROM users WHERE id=’ ’ LIMIT 0,1

正常请求时:
127.0.0.1/less-1/?id=1
对应的SQL语句:
SELECT * FROM users WHERE id=’ 1 ’ LIMIT 0,1

查询结果是三列
id username password
构造的select语句,在id=1后面加构造的东西,使用联合查询,加两个占位符

SQL注入构造的url
127.0.0.1/less-1/?id=-1’ union select 1,2,version() #
对应的SQL语句
SELECT * FROM users WHERE id=’ -1’ union select 1,2,version() # ’ LIMIT 0,1

得出:
数据库的版本

MySql

常用函数

https://dev.mysql.com/doc/refman/5.7/en/dynindex-function.html

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Mysql运算符

在这里插入图片描述

SQL注入流程

1寻找SQL注入点

目标搜集:
无特定目标
inurl:php?id=

有特定目标:
inurl:php?id=site:target.com

工具爬取
spider,对搜索引擎和目标的链接进行爬取

2注入识别:

1)手工简单识别:


and 1=1/ and 1=2
and ‘1’='1 /and ‘1’=2
and 1 like 1/ and 1 like 2

2)工具识别:

sqlmap -m filename(filename中保存检测目标)
sqlmap --crawl(sqlmap对目标网站进行爬取,然后进行测试)

3)高级识别
扩展识别广度和深度:
SqlMap --level 增加测试级别,对header中相关参数也进行测试
sqlmap -r filename(filename中为网站请求数据)   
利用工具提高识别效率
BurSuite +SqlMap
BurSuite拦截所有浏览器访问提交的数据
BurpSuite扩展插件,直接调用SqlMap进行测试

一些Tips
可以在参数后键入 “+”来确定想要测试的参数
可能出现注入的点:新闻,登录,搜索,留言…
站在开发的角度去寻找

4)代码审计
搜索代码和函数
梳理业务流程

SQL注入流程总结

在这里插入图片描述

信息搜集

在这里插入图片描述

获取数据

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值