[极客大挑战 2019]EasySQL 1-BUUCTF
2023-11-14
| 2024-4-21
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
@ZZHow(ZZHow1024)

SQL Injection(SQL注入)类

含义:把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。

思路:判断是否存在注入,注入命令查询数据

实操:

1、启动靶机,观察题目界面

[极客大挑战 2019]EasySQL 1题目界面
[极客大挑战 2019]EasySQL 1题目界面
  • 发现是一个用户登录界面。
  • 怀疑可能是爆破?或者SQL注入?好吧,标题已经说了是EasySQL。

2、尝试猜一次

  • 先随便试试,万一猜对了呢。
  • 尝试常见用户名和密码。
    • 用户名:admin
    • 密码:password
    • 尝试一下
      尝试一下
  • 好好好,果然没这么简单。

3、在密码结尾加上’(单引号),判断是不是SQL,且是否可以注入

  • 构建用户名和密码。
    • 用户名:admin
    • 密码:password’
  • 发现URL栏后多了/check.php?username=admin&password=password’,但没有报错!?
  • 没关系知道了是GET方法,尝试使用Hackbar构建一个URL并访问。
  • 构建URL。
    • http://d6a6b81b-d998-4ce6-b153-62fd39e02a59.node4.buuoj.cn:81/check.php?username=admin&password=password'
  • 点击 “EXECUTE”!
  • 出现SQL报错。
    • You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''password''' at line 1
SQL报错
SQL报错
  • 证明可以尝试SQL注入

4、尝试构建万能密码

  • 考虑到密码允许输入字母+数字,判断为字符型注入。
    • password' or '1'='1'--+(在这道题会报错)
    • 或password' or '1'='1
    • 逻辑或运算,假 or 真 = 真
  • 构建URL。
    • http://d6a6b81b-d998-4ce6-b153-62fd39e02a59.node4.buuoj.cn:81/check.php?username=admin&password=password' or '1'='1
  • 点击 “EXECUTE”!

5、解题成功!

notion image
Login Success!
  • 获得Flag!
  • CTF
  • BUUCTF
  • [ACTF2020 新生赛]Exec 1-BUUCTF[极客大挑战 2019]Havefun 1-BUUCTF
    Loading...
    目录