当前位置:网站首页>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
边栏推荐
- 【文件包含漏洞-04】经典面试题:已知某网站仅存在本地文件包含漏洞时,如何GetShell?
- 杭州/北京内推 | 阿里达摩院招聘视觉生成方向学术实习生(人才计划)
- Shen Lu, China Communications Institute: police open source Protocol - ofl v1.1 Introduction and Compliance Analysis
- Previous string inversion topic
- VW VH adaptation of mobile terminal
- Jincang KFS data cascade scenario deployment
- 金仓数据库 KingbaseES 插件ftutilx
- 看完这篇 教你玩转渗透测试靶机Vulnhub——DriftingBlues-7
- Apache ShenYu 入门
- 金仓数据库 KingbaseES 插件DBMS_OUTPUT
猜你喜欢
At 16:00 today, Mr. sunxiaoming, a researcher of the Institute of computing, Chinese Academy of Sciences, took you into the quantum world
Query method and interrupt method to realize USART communication
Socket communication principle
Shen Lu, China Communications Institute: police open source Protocol - ofl v1.1 Introduction and Compliance Analysis
视频会议一体机的技术实践和发展趋势
仿真与烧录程序有哪几种方式?(包含常用工具与使用方式)
软件测试 避免“试用期被辞退“指南,看这一篇就够了
Netease's open source distributed storage system curve officially became the CNCF sandbox project
Network remote access using raspberry pie
Compilation of learning from Wang Shuang (1)
随机推荐
Comparator(用于Arrays.sort)
Handler、Message、Looper、MessageQueue
Gaussdb cluster maintenance case set - slow SQL execution
撸一个随机数生成器
Arrays.asList()
Handler、Message、Looper、MessageQueue
数据库系列:MySQL索引优化总结(综合版)
wait()、notify()和notifyAll()、sleep()、Condition、await()、signal()
2022年PMP项目管理考试敏捷知识点(2)
Handling of NPM I installation problems
GC
Gaussdb others scenarios with high memory
某APP中模拟器检测分析
FPGA displays characters and pictures based on VGA
Kingbasees plug-in DBMS of Jincang database_ UTILITY
Shen Ying, China Academy of communications and communications: font open source protocol -- Introduction to ofl v1.1 and analysis of key points of compliance
龙书虎书鲸书啃不动?试试豆瓣评分9.5的猴书
Complete steps for a complete Oracle uninstall
VW VH adaptation of mobile terminal
网络远程访问的方式使用树莓派