1檢視clean_input()函式:<?php
2include_once('sys/config.php');34
if (isset($_post['submit']) && !empty($_post['message']) && isset($_session['username'])) ','$clean_message',now())";
1011
mysql_query($query, $conn) or die(mysql_error
());
12mysql_close($conn
);13
header('location: message.php');14}
15else
19 ?>
1function clean_input( $dirty
)
stripslashes()刪除反斜槓
mysql_real_escape_string()對 \x00 \n \r \ ' " 進行轉義然後觀察sql語句:
"insert into comment(user_name,comment_text,pub_date) values ('','$clean_message',now())";在獲取username的時候是否可以將閉合的單引號轉義
insert into comment(user_name,comment_text,pub_date) values ('test\','$clean_message',now())紅色部分將變成username的內容,因為\轉義的單引號,是其閉合失敗,在$clean_message的開始單引號,與其閉合。
$clean_message就可以隨意構造攻擊語句:,(select admin_name from admin limit 0,1),1);#
$clean_message=,(select admin_name from admin limit 0,1),1);# 構造$clean_message 注釋掉後面的sql語句,將查詢到管理員的使用者名稱現在只需要構造姓名,讓其出現\注釋掉單引號即可。
然後註冊使用者名為 test\
sql語句為:
很明顯進行了轉義 \能對單引號轉義。但是\\就失去了作用。
進入資料庫發現,入庫後竟然成了乙個反斜槓。
1在登陸頁面發現重新獲取了username變數。<?php
2include_once('../sys/config.php');34
if (isset($_post['submit']) && !empty($_post['user']) && !empty($_post['pass']))
19else
23mysql_close($conn
);24}25
else
28 ?>
登陸後發現報錯。
發現使用者名稱成功注釋了單引號,導致頁面錯誤。
成功將賬號密碼讀了出來!
00截斷問題
一 php 00截斷 在php 5.3.4中php修復了0字元,但是在之前的版本中00在php中危害較大。簡單測試一下 php 版本 5.3.4 get filename 這樣就可以接收到,這樣的請求filename test.php 00.txt 主要利用常見 1.上傳時路徑可控,使用00截斷 3...
00截斷上傳繞過 檔案上傳漏洞「 00截斷」繞過
網上傳說的 00截斷 其實非常的簡單,沒有想像中的那麼高深,以下給大家簡單的講解一下!還有一點需要注意,關於如何判斷檔案上傳漏洞是否能用 00截斷繞過?這個只能試一下才能知道結果,不行的話只能換其它的方法嘍!這裡需要用上抓包工具,我這裡以 burpsuite 抓包工具為例,具體步驟如下 1 00截斷...
關於上傳中的00截斷分析
關於上傳中00截斷的細節,很多朋友在滲透中都會發現一些這樣的有趣現象,這個站點使用00截斷上傳的方法上傳成功了,而換乙個站點又失敗了,這是什麼原因呢?你看了這篇文章就會明白。0x00是字串的結束識別符號,攻擊者可以利用手動新增字串識別符號的方式來將後面的內容進行截斷,而後面的內容又可以幫助我們繞過檢...