SQL注入

SQL注入

SQL注入攻击是通过构建特殊的输入作为参数传入WEB程序,这些输入大都是SQL中的一些组合,通过执行SQL语句进而执行攻击者的操作。

SQL注入分类

  1. 数字注入型
  2. 字符注入型

常见的注入类型

  • POST注入:注入字段在POST中
  • Cookie注入:注入字段在Cookie中
  • 延时注入:利用数据库的延时特性注入
  • 搜索注入:注入处为搜索的地方
  • base64注入:注入字符串需经过base64加密

利用的方式大致可以分为几类:

利用数据库获得更多的数据或者更大的权限

  • 查询数据
  • 读写文件
  • 执行命令

Mysql

获取字段数:order by x 取临界值
获取数据库名:database()
获取数据库版本:version()

数据库用户:user()
操作系统:@@version_comile_os

mysql注入文件信息
读取函数:load_file(’’)
写入函数:into outfile
关于网站路径的获取:

  • 报错显示
  • 谷歌搜索错误信息
  • 读写配置文件
  • 漏洞报错
  • 遗留文件
  • 字典猜解

注意:路径符号及编码

注入问题

魔术引号:magic_quotes_gpc 开关
如果输入的数据有单引号(’)、双引号(”)、反斜线()与 NUL(NULL 字符)等字符都会被加上反斜线,即被转义(php5.4版本后移除)

安全性函数:

  • addslashes():原理和magic_quotes_gpc相似,但是不要对魔术引号已经转义过的字符串使用,这会导致双层转义。
  • htmlentities():这个函数对于过滤用户的数据非常有用,它将会将一些特殊字符转换成HTML实体。
  • htmlspecialchars():把HTML中的几个特殊字符转义成HTML Entity(格式:&xxxx;)形式,包括(&),(’),("),(<),(>)五个字符。htmlspecialchars可以用来过滤GET,POST,$COOKIE数据,预防XSS。
  • strip_tags():会过滤掉NUL,HTML和PHP的标签,JavaScript。
高权限跨库注入

跨库注入条件:root权限
网站之间可能存在数据库交叉,可以同过已知的root权限进行跨库注入。
顺序:获取数据库名称-获取指定表名信息-获取列名信息-获取指定数据(注意指定数据库名,注意转义)

提交方式注入
  • POST登录框注入
    两个条件:
    1.用户可以控制传参。
    2.用户输入的语句被带入到数据库中查询。
    首先判断是否有注入点,填入闭合符号看页面是否异常如【‘、“、)、’)、”)】判断结束后输入“and 1=1”判断是否正常,注入点判断完毕。
    接着使用order by 语句查询有几个字段,order by X#,X为字段数目,正确则页面正常
  • Cookie验证注入
  • HTTP头注入
    实际情况下,有些站点接受数据是以http数据包中的http头部进去数据接受,所以测试注入点的时候,需要将注入语句写入到http头部中。
参数类型注入

数字、字符、搜索型

$id=$_GET{'x'};
select * from news where id=1
//搜索型为id like'%xxxxxx%'
//搜索型单引号拿#过滤
参数加解密注入

常见加密格式:
md5

盲注攻击(基于时间延迟)

普通联合注入和盲注的区别:
1.普通注入,效率高,兼容性差
2.盲注,效率较低,兼容性强
工具采用的基本都为盲注。

sleep()
if(条件,Ture,False)
mid(str,1,1) 截取
ord ascii 编码
//获取表名长度,或用mid指定特定位ascii码
union select 1,2,3,sleep(if(length(table_name)=4,0,5))
from information_schema.tables where table_schema=database()limit0,1

注意事项
  1. Sql语句组合拼接,保证sql语句正常运行
  2. Sql语句中闭合使用(符号或截断)
  3. 每个不同注入方式和网站应用功能有关
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值