1. 如何對一個網站進行sql注入攻擊
1.POST注入,通用防注入一般限制get,但是有時候不限制post或者限制的很少,這時候你就可以試下post注入,比如登錄框、搜索框、投票框這
類的。另外,在asp中post已被發揚光大,程序員喜歡用receive來接受數據,這就造成了很多時候get傳遞的參數通過post/cookie也
能傳遞,這時如果恰好防注入程序只限制了get,因此post注入不解釋
2.cookie注入,原理同post注入,繞過相當多通用防注入
3.二次注入,第一次注入的數據可能不會有效,但是如果將來能在某個頁面裡面被程序處理呢?注入來了……
4.csrf,適合後台地址已知並且存在已知0day,可以試試用csrf劫持管理員來進行操作(這招其實不屬於sql注入了)
5.打碎關鍵字,比如過濾select,我可以用sel/**/ect來繞過,這招多見於mysql
6.有時候也可以sELeCT這樣大小寫混淆繞過
7.用chr對sql語句編碼進行繞過
8.如果等於號不好使,可以試試大於號或者小於號,如果and不好使可以試試or,這樣等價替換
9.多來幾個關鍵字確定是什麼防注入程序,直接猜測源碼或者根據報錯關鍵字(如"非法操作,ip地址已被記錄")把源碼搞下來研究
10.記錄注入者ip和語句並寫入文件或資料庫,然而資料庫恰好是asp的,插馬秒殺
2. sql注入 form過濾怎麼繞過
我常用的三種方法:
1,參數過濾,過濾掉 單引號,or,1=1 等類似這樣的 。
2,使用 參數化方法格式化 ,不使用拼接SQL 語句。
3,主要業務使用存儲過程,並在代碼里使用參數化來調用(存儲過程和方法2結合)
3. 如何對網站進行SQL注入
首先你要了解什麼是SQL注入漏洞,SQL注入漏洞就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL命令,比如很多影視網站泄露VIP會員密碼大多就是通過WEB表單遞交查詢字元暴出的,這類表單特別容易受到SQL注入式攻擊。
簡單來說,網站一般都是由web應用程序,資料庫,伺服器等組成的,網站的所有用戶數據,密碼表單等等都是保存在資料庫當中的,資料庫的內容按到常理來說是只能在伺服器內部進行查詢,當然,但是,開發人員對客戶端用戶向客戶端提交的參數沒有進行過濾,那麼,黑客就可以從客戶端【瀏覽器,等等,詳細可以學習http協議】向伺服器提交查詢資料庫的SQL語句,如果提交的語句成功的被伺服器給接收到並且執行么,那麼黑客豈不是想怎麼查詢資料庫裡面的內容就怎麼查詢,不是么?那些管理賬號密碼,會員數據不是分分鍾就到手了?SQL注入漏洞危害是非常大的。
當然,這種漏洞是根據提交參數沒過濾而產生的,那麼除了瀏覽器的get提交參數,http協議中還有,post提交,cookie提交,等等。注入漏洞不是網上那些所謂的黑闊,用什麼啊D,明小子之類的亂檢測一氣而找出來的,如果樓主想研究這個漏洞的產生,原理,利用和防禦,是需要進行代碼審計,SQL注入語句基礎,等等。
現在一般常用的工具:SQLmap【這是一款神器,現在是公認最強大的開源注入工具】
建議樓主去看幾本書:《SQL注入天書》《SQL注入漏洞的產生與防禦》
這個漏洞的利用不是幾句話就能說清楚的,詳細的可以追問,純手工打字,望樓主採納。
4. SQL注入的編碼轉換問題
將select等等語句,轉換為ASCII或16進制,通過URL的方法傳遞到伺服器。
這一步是沒有問題的。
傳到伺服器之後,誰再幫你的編碼轉回來呢?
URL的注入早就過時了。
5. 什麼是sql 代碼
sql代碼是用代碼操作資料庫,從資料庫里把數據取出來,加進去。
6. 求助,關於SQL注入如何繞過SELECT語句的過濾
1,:轉換個別字母大小寫,無效
2:輸入SESELECTLECT之類的語句來代替SELECT,無效
3:用轉義的URL編碼來代替SELECT(不知道這么表述對不對,就是%後面跟上16進制的ascii碼……),無效
4:用/**/來隔開SELECT中的各個字母,無效
7. 用什麼方法繞過SQL注入的限制
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都無法檢測出來
=hex(sysadmin)
=hex(db_owner)
另外,關於通用點的過濾方法,我們可以考慮採用賦值的方法,例如先聲明一個變數a,然後把我們的指令賦值給a,然後調用變數a最終執行我們輸入的命令。變數a可以是任何命令。如下:
declare @a sysname
select @a=
exec master.dbo.xp_cmdshell @a
效果 how.asp?id=1;declare%20@a% 20sysname%20select%20@a=7300730020002f
00610064006400%20exec%20master.dbo.xp_cmdshell%20@a;–
其中的 7300730020002f00610064006400 就是「net user angel pass /add」的意思。
8. 【web安全】怎麼進行sql注入
1.POST注入,通用防注入一般限制get,但是有時候不限制post或者限制的很少,這時候你就可以試下post注入,比如登錄框、搜索框、投票框這類的。另外,在asp中post已被發揚光大,程序員喜歡用receive來接受數據,這就造成了很多時候get傳遞的參數通過post/cookie也能傳遞,這時如果恰好防注入程序只限制了get,因此post注入不解釋
2.cookie注入,原理同post注入,繞過相當多通用防注入
3.二次注入,第一次注入的數據可能不會有效,但是如果將來能在某個頁面裡面被程序處理呢?注入來了……
4.csrf,適合後台地址已知並且存在已知0day,可以試試用csrf劫持管理員來進行操作(這招其實不屬於sql注入了)
5.打碎關鍵字,比如過濾select,我可以用sel/**/ect來繞過,這招多見於mysql
6.有時候也可以sELeCT這樣大小寫混淆繞過
7.用chr對sql語句編碼進行繞過
8.如果等於號不好使,可以試試大於號或者小於號,如果and不好使可以試試or,這樣等價替換
9.多來幾個關鍵字確定是什麼防注入程序,直接猜測源碼或者根據報錯關鍵字(如"非法操作,ip地址已被記錄")把源碼搞下來研究
10.記錄注入者ip和語句並寫入文件或資料庫,然而資料庫恰好是asp的,插馬秒殺