BUUCTF[極客大挑戰 2019]EasySQL 1題解

[極客大挑戰 2019]EasySQL題解

  • 分析
  • 解題過程
    • 漏洞原理分析
    • 明確注入點:
    • 嘗試萬能密碼法
      • 法一
      • 法二
  • 總結

分析

從題目分析,這道題應該與SQL注入有關,啟動靶機之后,訪問url是一個登錄界面,隨便輸入用戶名密碼之后,發現用的還是[GET]請求👍。那基本可以確定本題一定與SQL注入有關。
登錄界面
GET型

  • SQL注入的漏洞是基于數據庫命令的底層邏輯,在互聯網初期,沒有人對SQL注入進行預防,這就導致很多歷史遺留問題。
    迄今為止還是WEB中十大常見漏洞之一

解題過程

漏洞原理分析

對于上面的登錄界面,后端驗證用戶名和密碼是否匹配的數據庫的查詢語句可能是下面這樣的格式:

select * from table_name where username=變量1 and password=變量2; 

其中的變量1是我們在用戶名中輸入的字符,變量2是我們在password中輸入的字符。SQL注入出現的原理是SQL語句對變量和命令的界定不夠清晰,我們可以構造合適的輸入變量改變整個SQL查找語句的功能。

明確注入點:

SQL注入的類型主要分為數字型字符型,分類標準就是變量的數據類型:
對于數字型

select * from table_name where username=變量1 and password=變量2; 

我們構造輸入

1 and 1=1 #回顯正常
1 and 1=2 #回顯異常

而對于字符型,關鍵在于試著找出變量是用什么符號閉合的,常見的符號有'單引號'“雙引號”()[]等。

select * from table_name where username='變量1' and password='變量2'; 
select * from table_name where username="變量1" and password="變量2"; 

對于這道題我們構造輸入

1'

直接報錯,這說明我們輸入的'與前面的某個引號閉合,導致最后多出來一個單獨的‘,詳細情況如下:

select * from table_name where username='1'' and password='變量2'; 

這樣我們確定本題有注入點,并確定注入類型是字符型。

嘗試萬能密碼法

這好像是CTF中獨有的技巧因為一般的滲透都會直接入侵后端(誰和你過家家😅)

法一

我們通過or的邏輯結構,構造前端的payload,以跳過判斷邏輯:

?usename=1' or '1'='1&password=1' or '1'='1

后端代碼:

select * from table_name where username='1' or '1'='1' and password='1' or '1'='1'; 

對與門(and)和或門(or)有一定了解的讀者很容易理解上面的代碼,where后面的語句一定是真(1),這樣就跳過了SQL語句對用戶名和密碼的判斷。
最后的結果是:
flag
flag{c245efae-9088-4dec-8c2e-5c34c73392e9}

法二

上面的方法對于hacker來說還是太講理了,不夠實用,我們直接構造payload:

?username=1' or true #&password=1
select * from table_name where username='1' or true #' and password='1'; 

這個方法直接使用#注釋掉了后面的語句,同樣可以獲得flag。

總結

這是一道初級的SQL注入題目,與滲透測試的實際環境有出入,主要的考察點是SQL類型判斷以及構造payload。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/83613.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/83613.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/83613.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

05.MySQL表的約束

MySQL表的約束 MySQL表的約束 1. 空屬性 2. 默認值 3. 列描述 4. zerofill 5. 主鍵 6. 自增長 7. 唯一鍵 8. 外鍵 9. 綜合案例 MySQL表的約束 說到 MySQL 表的約束,這絕對是數據庫設計里繞不開的一個話題。很多人一提“約束”,第一反應可能是字段的數據…

Web3如何重塑數據隱私的未來

在這個信息爆炸的時代,數據隱私已成為我們不得不面對的嚴峻問題。Web3,作為下一代互聯網的代表,以其去中心化、用戶主權和數據安全等特點,正在重塑數據隱私的未來。它不僅僅是技術的革新,更是對個人隱私保護理念的一次…

網絡編程之TCP編程

基于 C/S &#xff1a;客戶端&#xff08;client&#xff09;/服務器端&#xff08;server&#xff09; 1.流程 2. 函數接口 所有函數所需頭文件&#xff1a; #include <sys/types.h> #include <sys/socket.h> 系統定義好了用來存儲網絡信息的結構體 ipv4通信使…

各個布局的區別以及示例

各個布局的區別以及示例 在前端開發中&#xff0c;常見的布局方式主要有以下幾種&#xff0c;每種布局都有其適用場景和特點&#xff1a; 1. 普通文檔流&#xff08;Normal Flow&#xff09; 特點&#xff1a;默認布局方式&#xff0c;元素按照HTML順序依次排列。適用場景&am…

性能優化 - 理論篇:常見指標及切入點

文章目錄 引言一、 Java 性能優化的核心思路二、為什么要度量&#xff1f;三、常用性能衡量指標詳解3.1 吞吐量與響應速度3.2 響應時間的具體度量&#xff1a;平均響應時間與百分位數3.3 并發量3.4 秒開率&#xff08;頁面秒開&#xff09;3.5 正確性&#xff08;功能可用性&am…

第2講、Odoo深度介紹:開源ERP的領先者

一、Odoo深度介紹&#xff1a;開源ERP的領先者 Odoo&#xff0c;其前身為OpenERP&#xff0c;是一款在全球范圍內廣受歡迎的開源企業管理軟件套件。它不僅僅是一個ERP系統&#xff0c;更是一個集成了客戶關系管理&#xff08;CRM&#xff09;、電子商務、網站構建、項目管理、…

Telerik生態整合:Kendo UI for Angular組件在WinForms應用中的深度嵌入(一)

Telerik DevCraft包含一個完整的產品棧來構建您下一個Web、移動和桌面應用程序。它使用HTML和每個.NET平臺的UI庫&#xff0c;加快開發速度。Telerik DevCraft提供完整的工具箱&#xff0c;用于構建現代和面向未來的業務應用程序&#xff0c;目前提供UI for ASP.NET MVC、Kendo…

2025年6月4日收獲

Authorization Authorization是一種通用的、標準化的權限控制和認證的通用框架&#xff0c;它能夠使跨系統和跨域的身份驗證和授權管理更容易&#xff0c;使不同應用程序之間能夠更輕松地實現單點登錄&#xff08;SSO&#xff09;、用戶身份驗證和授權控制等。 在前端使用 axi…

實時數據湖架構設計:從批處理到流處理的企業數據戰略升級

企業數據處理架構正在經歷一場深刻的變革。從最初的數據倉庫T1批處理模式&#xff0c;到如今的實時流處理架構&#xff0c;這一演進過程反映了業務對數據時效性要求的不斷提升。 文章目錄 第一章&#xff1a;數據湖演進歷程與現狀分析 第二章&#xff1a;實時數據湖核心架構剖…

iptables實戰案例

目錄 一、實驗拓撲 二、網絡規劃 三、實驗要求 四、環境準備 1.firewall &#xff08;1&#xff09;配置防火墻各大網卡IP并禁用 firewall和selinux &#xff08;2&#xff09;打開firewall路由轉發 2.PC1&#xff08;內網&#xff09; &#xff08;1&#xff09;配置防…

macOS 連接 Docker 運行 postgres,使用navicat添加并關聯數據庫

下載 docker注冊一個賬號&#xff0c;登錄 Docker創建 docke r文件 mkdir -p ~/.docker && touch ~/.docker/daemon.json寫入配置&#xff08;全量替換&#xff09; {"builder": {"gc": {"defaultKeepStorage": "20GB",&quo…

docker離線鏡像下載

背景介紹 在某些網絡受限的環境中&#xff0c;直接從Docker Hub或其他在線倉庫拉取鏡像可能會遇到困難。為了在這種情況下也能順利使用Docker鏡像&#xff0c;我們可以提前下載好所需的鏡像&#xff0c;并通過離線方式分發和使用。 當前鏡像有&#xff1a;python-3.8-slim.ta…

Android 3D球形水平圓形旋轉,旋轉動態更換圖片

看效果圖 1、事件監聽類 OnItemClickListener&#xff1a;3D旋轉視圖項點擊監聽器接口 public interface OnItemClickListener {/*** 當旋轉視圖中的項被點擊時調用** param view 被點擊的視圖對象* param position 被點擊項在旋轉視圖中的位置索引&#xff08;從0開始&a…

48V帶極性反接保護-差共模浪涌防護方案

在工業自動化&#xff08;電動機驅動 / 工業機器人&#xff09;、交通基礎設施&#xff08;充電樁 / 車載電子&#xff09;、安防系統&#xff08;監控攝像頭 / 門禁&#xff09;、儲能設備&#xff08;BMS / 離網控制器&#xff09;等領域&#xff0c;DC48V 電源因安全特低電壓…

CentOS在vmware局域網內搭建DHCP服務器【踩坑記錄】

1. 重新設置環境 配置dhcp服務踩了不少坑&#xff0c;這里重頭搭建記錄一下&#xff1a; 1.1 centos 網卡還原 如果之前搭了亂七八糟的環境&#xff0c;導致NAT模式也沒法上網&#xff0c;這里重新還原 我們需要在NAT模式下聯網&#xff0c;下載DHCP服務 先把centos的網卡還…

《Docker》架構

文章目錄 架構模式單機架構應用數據分離架構應用服務器集群架構讀寫分離/主從分離架構冷熱分離架構垂直分庫架構微服務架構容器編排架構什么是容器&#xff0c;docker&#xff0c;鏡像&#xff0c;k8s 架構模式 單機架構 單機架構其實就是應用服務器和單機服務器都部署在同一…

Web3時代的數據保護挑戰與應對策略

隨著互聯網技術的飛速發展&#xff0c;我們正步入Web3時代&#xff0c;這是一個以去中心化、用戶主權和數據隱私為核心的新時代。然而&#xff0c;Web3時代也帶來了前所未有的數據保護挑戰。本文將探討這些挑戰&#xff0c;并提出相應的應對策略。 數據隱私挑戰 在Web3時代&a…

從零打造算法題刷題助手:Agent搭建保姆級攻略

我用Trae 做了一個有意思的Agent 「大廠機試助手」。 點擊 https://s.trae.com.cn/a/d2a596 立即復刻&#xff0c;一起來玩吧&#xff01; Agent 簡介 Agent名稱為大廠機試助手&#xff0c;主要功能有以下三點。 解題&#xff1a; 根據用戶給出的題目給出具體的解題思路引導做…

【JavaWeb】MVC三層架構

MVC三層架構 MVC 是什么&#xff1f;三層架構的組成&#xff08;View、Controller、Model&#xff09;各層職責劃分示例說明面試高頻問題與參考答案 MVC&#xff08;Model-View-Controller&#xff09;是一種經典的軟件設計模式&#xff0c;廣泛應用于 Web 應用開發中&#xf…

嵌入式分析利器:DuckDB與SqlSugar實戰

? 一、DuckDB 的核心特性與適用場景 DuckDB 是一款 嵌入式分析型數據庫&#xff08;OLAP&#xff09; &#xff0c;專為高效查詢設計&#xff0c;主要特點包括&#xff1a; 列式存儲與向量化引擎 數據按列存儲&#xff0c;提升聚合統計效率&#xff08;如 SUM/AVG&#xf…