当前位置:网站首页>Vulnérabilité à l'injection SQL (contournement)
Vulnérabilité à l'injection SQL (contournement)
2022-06-25 11:18:00 【Errorr0】
Après avoir étudiéSQLLe principe de l'injection、SQLType d'injectionOn peut dire plus tard.SQLInjectionJ'ai déjà une idée générale,Mais en réalité, les développeurs ne peuvent pas vous permettre d'attaquer une base de données aussi facilement,Ils imposent généralement certaines limites aux données qui ont été saisies ou qui peuvent être saisies,Cet article est principalement consacré àSQLCode injecté ouwafFiltrer le contournement pour faire un résumé.
Contournement de cas
C'est la façon la plus simple et la plus facile de contourner les côtes de poulet,Il y a deux raisons à cela:SQLDéclarationsInsensible à la casse、Le filtrage des listes noires par les développeurs est trop simple.

Double écriture
Le principe du double contournement d'écriture est que l'arrière - plan utilise des correspondances régulières aux mots sensibles pour les remplacer par des blancs.C'est - à - dire si filtréselect,Nous entrons123select456 Les mots sensibles seront détectés plus tard,La dernière chaîne remplacée par123select456 ---> 123456.Le contournement de ce filtre est aussi simple que la double écritureselectC'est tout.,Par exemple::selselectect ---> select ,Faites un tel filtrage et écrivez deux fois,Deux fois, trois fois, et ainsi de suite.Voir l'exemple suivant:

Il est clair ici que le mauvais message ,orÇa aurait dû être filtré, Nous utilisons la méthode de contournement décrite ci - dessus ,

Ça a marché.,C'est ça.Double écritureMéthode,C'est très simple.
Filtrage des espaces
Si l'espace est filtré , L'idée principale est de trouver un substitut , Il y en a plusieurs qui peuvent remplacer l'espace :
Commentaire contourné /**/ : Normalement, tant que celui - ci n'est pas filtré, il peut être remplacé .
Filtrage des parenthèses () : L'inclusion de tous les mots clés entre parenthèses peut remplacer la séparation des espaces comme suit ,
Normal:select * from user
Parenthèses:(select)*(from)(user)
urlCodage: Cette rencontre peut être tentée .Avec%20 Remplacer les espaces ou utiliser d'autres urlCodage
%09、%0a、%0b、%0c、%0d 、%a0、%00
Retour à la ligne de remplacement : Les retours de chariot peuvent également être utilisés comme séparateurs pour remplacer les espaces .
TabSubstitution:Tab Peut faire la fonction de séparation .
Filtrage des commentaires
Rencontre ce que nous utilisons habituellement --+ Filtrage des commentaires , Nous pouvons remplacer :
#、;%00、-- ( Deux moins un espace )
Fermer avec d'autres données :
select * from user where id='1'
||
V
select * from user where id='1' or '1' ='1'
Filtrage des guillemets
Le filtrage des guillemets est disponible en deux versions complètes , L'un est que les guillemets ne peuvent pas apparaître 、 L'un est d'être échappé , Le traitement de l'évasion est décrit dans l'article précédent comme un contournement par injection d'octets larges , Si les guillemets ne peuvent pas apparaître, ils doivent être utilisés , Vous pouvez lier les valeurs des paramètres à des guillemets simples ou doubles et les convertir en 16 Le système décimal est complété par 0x*****.
Filtrage des virgules
Il y a des fonctions ou des instructions qui nécessitent des virgules lorsqu'elles sont utilisées , Ainsi, la façon de contourner une virgule varie selon la fonction ou l'instruction .
substring()

Peu importe la fonction ,substrAvecsubstringPresque.. Vous pouvez voir que la virgule est appliquée d'en haut à en bas from……forRemplacer.
Si nécessairemid()Fonctions, Il y a aussi des façons de contourner les virgules avec substring()Même chose.,Avecfrom……for Remplacer la virgule .
limit 0,1
limit 0,1 Virgule présente , Donc si la virgule est filtrée, notre alternative est offset,C'est - à - dire:

Attention ici.,S'il est utiliséoffset, À l'origine, les données avant et après les virgules devaient être échangées entre elles .
union
On a besoin de select 1,2,3,4……, Et si les virgules sont filtrées, comment puis - je les contourner ici ? C'est très intéressant ici ,Requête conjointeselect 1,2,3,4…… Les tests peuvent être écrits séparément comme suit

Entre parenthèsesa、b、c Est nommé au hasard est omis asPour écrire, Pourquoi j'écrirais ça ? Pour que l'écriture filtre les virgules ,Nous utilisonsoffset Au lieu de ,

Donc le contournement des virgules pour les requêtes fédérées utilise joinRemplacer.
Filtrage égal
Si seulement le signe égal filtré peut être remplacé par ce qui suit
<> :Ça veut dire !=
regexp、like、rlike

Filtre d'opérateur logique
Filtréor、and、xor、not Peut être remplacé par un caractère correspondant :&&、||、| 、!

Si aucun ne peut être utilisé, envisager d'utiliser Produit cartésien(^),

Celui - ci peut être utilisé directement sans and or Ces connecteurs .
Contournement du codage
Le codage contourne la vérité la tradition est rarement utilisée , Mais parfois son utilisation peut vraiment surprendre , Alors, tu devrais comprendre .
Contournement hexadécimal


Substitution mutuelle de fonctions similaires
1)sleep() <-->benchmark()
2)ascii() <-–>hex()、bin(),Remplacer avant d'utiliser la conversion décimale correspondantestringC'est tout.
3)group_concat() <–->concat_ws()
4)substr() <--> substring() <--> mid()
5)user() <--> @@user、datadir–>@@datadir
6)ord() <-–> ascii(): Ces deux fonctions fonctionnent de la même façon dans le traitement de l'anglais ,Mais le traitement du chinois, etc., n'est pas uniforme.
SQL Contournement du filtre d'injection _12622800Le blog technique de_51CTOBlogs
SQLInjection contournée - redglare - La blogosphère
https://www.csdn.net/tags/MtTaEgwsMTY0OTk1LWJsb2cO0O0O.html#2_12
边栏推荐
- XSS attack
- Android之Kotlin语法详解与使用
- c盘使用100%清理方法
- Big Endian 和 Little Endian
- [file containing vulnerability-03] six ways to exploit file containing vulnerabilities
- zabbix分布式系统监控
- Some assembly instructions specific to arm64
- Shen Lu, China Communications Institute: police open source Protocol - ofl v1.1 Introduction and Compliance Analysis
- Detection and analysis of simulator in an app
- Software testing to avoid being dismissed during the probation period
猜你喜欢

今天16:00 | 中科院计算所研究员孙晓明老师带大家走进量子的世界

SystemVerilog (XIII) - enumerate data types

Geographic location system based on openstreetmap+postgis paper documents + reference papers + project source code and database files
![[file inclusion vulnerability-04] classic interview question: how to getshell when a website is known to have only local file inclusion vulnerability?](/img/28/ab02d38bde47053b155e0545b47039.png)
[file inclusion vulnerability-04] classic interview question: how to getshell when a website is known to have only local file inclusion vulnerability?

视频会议一体机的技术实践和发展趋势

CMU提出NLP新范式—重构预训练,高考英语交出134高分

【文件包含漏洞-04】经典面试题:已知某网站仅存在本地文件包含漏洞时,如何GetShell?

【文件包含漏洞-03】文件包含漏洞的六种利用方式

FPGA基于VGA显示字符及图片

报名开启|飞桨黑客马拉松第三期如约而至,久等啦
随机推荐
贝叶斯
TASK03|概率论
某APP中模拟器检测分析
Array structure collation
撸一个随机数生成器
Detection and analysis of simulator in an app
金仓KFS数据集中场景(多对一)部署
每日3题(2)- 找出数组中的幸运数
Oracle彻底卸载的完整步骤
金仓数据库 KingbaseES 插件force_view
金仓数据库 KingbaseES 插件ftutilx
Nuxtjs actual combat case
Crawler scheduling framework of scratch+scratch+grammar
Android: generic mapping analysis of gson and JSON in kotlin
查询法,中断法实现USART通信
Spannable and editable, spannablestring and spannablestring
数据库系列:MySQL索引优化总结(综合版)
[维护集群案例集] GaussDB 查询用户空间使用情况
zabbix分布式系统监控
视频会议一体机的技术实践和发展趋势