報錯注入驗證sqli

2022-08-27 02:42:08 字數 458 閱讀 2043

今天注入時遇到rd對注入點布置了一層攔截、一層過濾。

攔截基於黑名單,將union/and這些開發能想到的做了攔截。

過濾不知道用的什麼,會將關鍵字轉換為 forbid。

經過報錯提示,閉合符號是 ")" ,後端sql邏輯為 a) \n and a.area_id in(1,2,3,4) \nand a.city_.....

轉換器將select轉換為了forbid,且不管 加注釋還是加尖括號都會轉換。

最後用了報錯注入 payload

1+extractvalue(1,concat(0x7e,(user()),0x7e))

布林盲注payload

1+extractvalue(1,if(substr(concat(0x7e,(user()),0x7e),2,1)=0x7e,1,2))

同樣的報錯注入還有

updatexml

floor

二階sqli注入

通過對客戶端提交的資料進行嚴格的審查是有效避免sql注入的方法,但是一旦輸入的資料存入到資料庫之後,對這些資料的使用往往沒有做嚴格的檢查,但是對這些資料的操作往往具有很高的許可權,在使用這些資料再進行sql查詢或者sql寫操作的時候,很可能造成嚴重的sql注入,例如 使用者建立了乙個賬戶john 對...

sqli 二次注入

針對場景 存在另一處操作直接呼叫輸入資料而不做其他處理 關鍵 尋找另一處引用這個資料的操作 如果另一處操作直接將1 作為變數帶進自身的sql語句中,且未做如轉義等處理,那1 的單引號便會發生作用,起到sql注入的效果 以sqlilabs 24關為例 先點選forget your pass?出來如下頁...

SQL注入 報錯注入

乙個帶get引數的 並且不從資料庫返回資料,但存在報錯資訊 檢視字段情況 報錯注入語句格式 and 1 2 union select1,2,3 from select count concat floor rand 0 2 sql語句 a from information schema.tables...