sql注入入門

2021-09-01 12:12:05 字數 1003 閱讀 5075

參考文章:

正常的語句

select * from users where username='marcofly' and password=md5('test')

異常操作:

在使用者名稱輸入框中輸入:』 or 1=1#,密碼隨便輸入,這時候的合成後的sql查詢語句為:

select * from users where username='' or 1=1#' and password=md5('')

語義分析:「#」在mysql中是注釋符,這樣井號後面的內容將被mysql視為注釋內容,這樣就不會去執行了,換句話說,以下的兩句sql語句等價:

select * from users where username='' or 1=1#' and password=md5('')

等價於select * from users where username='' or 1=1

sql注入採用的' or 1=1 # 是什麼意思呢? 

最後乙個#號有什麼意義呢?

select * from test where name='' or 1=1 #' and age='20'  

這後面寫的 #' 是什麼意思呢? 求指教

# 可以注釋掉後面的一行sql**

相當於去掉了乙個where條件

mysql 注釋, 過濾掉後面的sql語句,使其不起作用

因為1=1永遠是都是成立的,即where子句總是為真,將該sql進一步簡化之後,等價於如下select語句:

select * from users 沒錯,該sql語句的作用是檢索users表中的所有字段

小技巧:乙個經構造後的sql語句竟有如此可怕的破壞力,相信你看到這後,開始對sql注入有了乙個理性的認識了吧~

有漏洞的指令碼才有機會給你攻擊,比如乙個帶引數的刪除指令碼a.asp?action=del&id=2你可以改為a.asp?action=del&id=2 or 1這樣就有可能刪除全部資料------sql注入就是通過類似的手段來破壞資料

SQL注入入門

sql注入漏洞的產生需要滿足一下兩個條件 引數使用者可控 前段傳給後端的引數內容是由使用者可以控制的。引數帶入資料庫查詢 傳入的引數拼接到sql語句,並且帶入資料庫查詢。例如 select from users where id 1 這不符合語法規範所以會報錯。當傳入id的引數為 and 1 1時 ...

sql注入入門

一 判斷注入型別 一般查詢語句,字元型和數值型 1.數值,如1 1,1 2 2.後面新增 1 and 1 1 和 1 and 1 2 進行查詢,若1 1返回正確而1 2返回錯誤則為數值型 3.加 若返回正確則為字元型 二 查列數 有待考證 order by num num為數值 三 確定字段位置 s...

「SQL注入「 入門基礎原理

1.sql 注入 sql 注入攻擊是通過將惡意的 sql 查詢或新增語句插入到應用的輸入引數中,再在後台 sql 伺服器上解析執行進行的攻擊,它目前黑客對資料庫進行攻擊的最常用手段之一。2.web 程式三層架構 a.介面層 user inte ce layer b.業務邏輯層 business lo...