less-38
判斷注入類型
輸入正確的參數(shù),網(wǎng)頁(yè)回顯正常的信息。使用單引號(hào)閉合,網(wǎng)頁(yè)回顯錯(cuò)誤信息。
?
把后面的信息注釋掉,網(wǎng)頁(yè)返回正常信息,說(shuō)明此處存在單引號(hào)閉合的字符型注入。
?
?
?
堆疊注入
此處使用 Less 1 的 payload 就可以完成注入,此處用于測(cè)試堆疊注入。所謂堆疊注入就是在原語(yǔ)句后加上分號(hào),從而閉合前面的內(nèi)容作為第一條 SQL 語(yǔ)句。然后在后面輸入第二條的數(shù)據(jù)庫(kù)操作語(yǔ)句,在條件允許可以被后端帶入數(shù)據(jù)庫(kù)執(zhí)行。堆疊注入使用的范圍非常有限,例如后端可能會(huì)限制 SQL 只執(zhí)行一條語(yǔ)句。一旦這種漏洞存在,對(duì)數(shù)據(jù)庫(kù)的破壞性是毀滅性的,因?yàn)檫@表示攻擊者可以肆意對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。例如此處使用堆疊注入新建一張表,使用 CREATE TABLE 子句,該表將復(fù)制 users 表作為一張新的表存在。這種復(fù)制可以結(jié)合 SQL 注入爆出表名來(lái)復(fù)制,也可以用社會(huì)工程學(xué)來(lái)猜測(cè)。
http://127.0.0.1/sqli-labs/Less-38/?id=1';create table pursue like users;
網(wǎng)頁(yè)回顯正常的信息,打開(kāi)數(shù)據(jù)庫(kù)發(fā)現(xiàn)已經(jīng)多了一張新的表了
?
?使用堆疊查詢把 users 表中的數(shù)據(jù)插入新的表中,使用 INSERT INTO 子句實(shí)現(xiàn)。
http://127.0.0.1/sqli-labs/Less-38/?id=1';insert into pursue select * from users;
?
?
?使用堆疊查詢新建的表的所有記錄刪掉,使用 DELETE 子句實(shí)現(xiàn)。
http://127.0.0.1/sqli-labs/Less-38/?id=1';delete from pursue;
?
?
?使用堆疊查詢把新建的表刪掉,使用 DROP 子句實(shí)現(xiàn)。
http://127.0.0.1/sqli-labs/Less-38/?id=1';drop table pursue;
?
SQL 查詢語(yǔ)句
可以看到源碼使用了?mysqli_multi_query()?函數(shù),該函數(shù)可以執(zhí)行多個(gè) MySQL 語(yǔ)句。之前的 Less 使用的是?mysql_query() 函數(shù),該函數(shù)只執(zhí)行一條 MySQL 查詢。
less-39
這一關(guān)除了閉合方式的不同,其他步驟都與Less-38相同,這一關(guān)的閉合方式是:id
less-40
用id=1')進(jìn)行閉合
less-41
這一關(guān)沒(méi)有閉合,錯(cuò)誤不回顯,不能使用報(bào)錯(cuò)注入,具體步驟和語(yǔ)句請(qǐng)參考Less-38,此處不再贅述。
本文摘自 :https://www.cnblogs.com/