我是靠谱客的博主 健忘魔镜,最近开发中收集的这篇文章主要介绍2021-07-08 CTFer成长之路-SQL注入-逃逸引号,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一:逃逸引号

1.编码解码
开发者常常会用到形如urldecode、base64_decode的解码函数或者自定义的加解密函数。当用户输入addslashes函数时,数据处于编码状态,引号无法被转义,解码后如果直接进入SQL语句即可造成注入,同样的情况也发生在加密/解密、字符集转换的情况。宽字节注入就是由字符集转换而发生注入的经典案例。

宽字节注入原理:

  GBK 占用两字节

  ASCII占用一字节

  PHP中编码为GBK,函数执行添加的是ASCII编码,MYSQL默认字符集是GBK等宽字节字符集。

  输入%df和函数执行添加的%5C,被合并成%df%5C。由于GBK是两字节,这个%df%5C被MYSQL识别为GBK。导致本应的%df变成%df%5C%df%5C在GBK编码中没有对应,所以被当成无效字符。

  %DF’ :会被PHP当中的addslashes函数转义为“%DF'” ,“”既URL里的“%5C”,那么也就是说,“%DF'”会被转成“%DF%5C%27”倘若网站的字符集是GBK,MYSQL使用的编码也是GBK的话,就会认为“%DF%5C%27”是一个宽字符。也就是“縗’”

例如:http://www.xxx.com/login.php?user=%df’ or 1=1 limit 1,1%23&pass=

其对应的sql就是:

select * fromcms_user where username = ‘運’ or 1=1 limit 1,1#’ and password=”

2.意料之外的输入点
开发者在转义用户输入时遗漏了一些可控点,以PHP为例,形如上传的文件名、http header、$_SERVER[‘PHP_SELF’]这些变量通常被开发者遗忘,导致被注入。

3.二次注入
在这里插入图片描述

select password from wp_user where username='admin'or'1'

则注入成功

4.字符串截断

http://192.168.20.132/insert2.php?title=aaaaaaaaa&content=11),(34,(select%20pwd%20from%20wp_user%20limit%201),1%23

在这里插入图片描述

最后

以上就是健忘魔镜为你收集整理的2021-07-08 CTFer成长之路-SQL注入-逃逸引号的全部内容,希望文章能够帮你解决2021-07-08 CTFer成长之路-SQL注入-逃逸引号所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部