最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

SQL手工注入保姆級(jí)教程(封神臺(tái)黑客靶場(chǎng)1-1)

2023-02-17 19:21 作者:Growlbass  | 我要投稿

注:本教程僅供交流學(xué)習(xí)使用,請(qǐng)遵守網(wǎng)絡(luò)安全相關(guān)法律法規(guī),如果使用本技術(shù)對(duì)其他網(wǎng)站進(jìn)行攻擊,本人概不負(fù)責(zé)!

本教程需要一定的Mysql數(shù)據(jù)庫知識(shí),如果看不懂本教程中的代碼可以學(xué)習(xí)Mysql。

現(xiàn)在由我來講解一下封神臺(tái)黑客靶場(chǎng)1-1 SQL注入攻擊原理與實(shí)戰(zhàn)演練。在開始實(shí)際操作前,我們先來了解一下sql注入到底是什么。由于一些開發(fā)者在開發(fā)過程中,直接將URL中的參數(shù),http body中的post參數(shù)等其他外來用戶輸入?yún)?shù)與SQL語句進(jìn)行拼接,導(dǎo)致了我們可以執(zhí)行任何SQL語句。

例:<?php

????????????...

????????????$id=$GET('id');

????????????$getid="select id from users where user_id=‘$id'";

????????????$result=mysql_query($getid) or die('<pre>'.mysql_error.'</pre>');

????????????$num=mysql_numrows($result);

以上PHP代碼來自于CTF特訓(xùn)營P14

我們看一下$id這個(gè)變量,這個(gè)變量會(huì)直接與SQL語句進(jìn)行拼接,那么,如果我們傳入這樣一段SQL指令:

-1‘ union select 1,2,3 --

那么,SQL語句將會(huì)變成

select id from users where user_id = '-1' union select 1,2,3

到這里可能會(huì)有這樣一個(gè)疑問:為什么要閉合單引號(hào)且為什么有一個(gè)單引號(hào)沒有了呢。

我們接下來逐一解答。

Q:為什么要閉合單引號(hào)?

A:我舉一個(gè)例子你就明白了。如果我們不閉合單引號(hào),這一段SQL語句將會(huì)變?yōu)?/strong>

select id from users where user id = '-1 union select 1,2,3'

發(fā)現(xiàn)問題了嗎,原本我們注入的SQL語句,在單引號(hào)中變成了字符串,導(dǎo)致我們注入的SQL語句無法執(zhí)行。

Q:為什么有一個(gè)單引號(hào)不見了

A:--是Mysql中的注釋符,注釋掉了一個(gè)單引號(hào),才能使得前面的單引號(hào)閉合。

如果沒有注釋,我們的SQL語句將會(huì)變成

select id from users where user_id = ''-1 union select 1,2,3'

說到這里,在看本教程的各位有沒有對(duì)SQL注入的原理和方法有一個(gè)基本的了解呢?

——————分割線——————

原理和技術(shù)講完了,我們現(xiàn)在進(jìn)入靶場(chǎng)實(shí)戰(zhàn)。

我們這次完成的是封神臺(tái)黑客靶場(chǎng)1-1,關(guān)卡詳情如下。

封神臺(tái)靶場(chǎng)1-1題目詳情

點(diǎn)擊傳送門后,我們進(jìn)入了靶場(chǎng),我們可以看到,靶場(chǎng)首頁有一個(gè)鏈接。

靶場(chǎng)首頁

點(diǎn)擊鏈接后,我們跳轉(zhuǎn)進(jìn)了一個(gè)貓舍介紹界面,網(wǎng)址為cntj8003.ia.aqlab.cn?id=1

那么我們前面有講過,可以利用GET進(jìn)行傳入SQL語句,我們來試一下。

靶場(chǎng)圖片

首先我們傳入一個(gè)單引號(hào),來檢查是否存在單引號(hào)閉合,如果傳入后頁面正常,則存在單引號(hào)閉合,如果傳入后頁面異常,則不存在單引號(hào)閉合,我們可以繼續(xù)嘗試雙引號(hào)閉合。

傳入單引號(hào)

傳入單引號(hào)進(jìn)入頁面發(fā)現(xiàn)頁面異常,則不存在單引號(hào)閉合,那么如果我們傳入雙引號(hào)呢?

單引號(hào)頁面異常

返回結(jié)果依舊是頁面異常,由此我們斷定,此處無需閉合,那么,我們就可以放心的去傳入我們的SQL代碼了。

雙引號(hào)頁面異常

我們接下來就要去查詢SQL語句向

該表查詢了多少字段,這里使用Order by語句,為后面的聯(lián)合查詢做準(zhǔn)備,因?yàn)槁?lián)合查詢需要有相同的字段數(shù)。

我傳入了order by 1,頁面回顯正常,那么我們繼續(xù),order by 1,2,頁面依舊回顯正常,當(dāng)我再次輸入order by 1,2,3時(shí),頁面回顯異常,到這里,我們可以判斷出當(dāng)前SQL語句查詢了兩個(gè)字段。

傳入order by 1測(cè)試后頁面回顯正常(注意,這里我沒有讓頁面回顯)
傳入order by1,2測(cè)試頁面回顯正常
傳入order by1,2,3測(cè)試頁面回顯異常

通過order by知道了字段數(shù)后,我們接下來就可以進(jìn)行聯(lián)合查詢了。

首先我們可以查詢一下數(shù)據(jù)庫名字,運(yùn)用下面這段SQL語句

and 1=2 union select 1,database()

得到了數(shù)據(jù)庫名字為maoshe

查詢數(shù)據(jù)庫名字

之后,我們可以嘗試獲取表名。

我們繼續(xù)注入SQL語句

and 1=2 union select 1,table_name from information_schema.tables where table_schema='maoshe';

通過這個(gè)查詢,可以查詢出maoshe中的表名,我們得到了一個(gè)admin表(其實(shí)還有其他的表,但是,我只想用admin表,基本賬號(hào)密碼都在這個(gè)表中,但是,如果你想知道其他表名,可以使用limit,limit用法我會(huì)在后面講到)

通過注入查詢得到admin表

既然表名確定了,我們就要去猜字段了,我們繼續(xù)查詢。

and 1=2 union select 1,column_name from information_schema.columns where table_name='admin'

通過查詢,我得到了一個(gè)id字段,但是,這并不是我們想要的結(jié)果,而且,這個(gè)表中不會(huì)僅有這一個(gè)字段。接下來,我們就要用到limit

在MySQL中,limit有一個(gè)遍歷的功能(或許不叫這個(gè)名字,但我比較喜歡這樣理解)

用法:limit 1,1 跳過第一個(gè),查詢后面一個(gè)。

? ? ? ? ? ? limit 2,1跳過第二個(gè),查詢后面一個(gè)

以此類推

那么,我說到現(xiàn)在,你可能猜到我要怎么做了。

得到了一個(gè)id字段

我們?cè)谖覀兩厦娴腟QL語句中插入 limit 0,1 ?limit 1,1 limit 2,1來遍歷字段。

我們分別得到了id,username,password字段,當(dāng)然,你可以繼續(xù)遍歷,不過,既然得到了username和password字段,我們的目的達(dá)到了,為什么要繼續(xù)遍歷呢?

勝利近在咫尺,我們進(jìn)行最后一步查詢

我們要查詢 username 和 password 字段的內(nèi)容

查詢username:and 1=2 union select 1,username from admin

查詢password:and 1=2 union select 1,password from admin

查詢到username為admin,password為hellohack

至此,封神臺(tái)黑客靶場(chǎng)1-1順利通關(guān)。

當(dāng)然,本教程所講為手工注入方法,同樣可以使用sqlmap進(jìn)行自動(dòng)注入,這里就不進(jìn)行介紹了。

希望大家能后喜歡本教程,后續(xù)我還會(huì)繼續(xù)做其他系列,本教程中如果存在錯(cuò)誤也歡迎指正,相互學(xué)習(xí)。

SQL手工注入保姆級(jí)教程(封神臺(tái)黑客靶場(chǎng)1-1)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
德安县| 肇庆市| 察雅县| 元谋县| 昌宁县| 黔西| 景宁| 马关县| 那坡县| 滨州市| 惠水县| 黄石市| 诏安县| 临汾市| 纳雍县| 乐安县| 静海县| 博白县| 无锡市| 清涧县| 宜城市| 牙克石市| 外汇| 蕉岭县| 乌拉特后旗| 丰县| 福清市| 务川| 和平区| 庄浪县| 平潭县| 吐鲁番市| 台前县| 车致| 西贡区| 通许县| 龙陵县| 大姚县| 屯昌县| 温宿县| 平泉县|