接着我上一篇繞waf文章,這篇主要總結一下利用mysql數據庫的註釋來繞過wafmysql
首先介紹一下mysql數據庫的註釋符sql
在MySQL裏,多行解釋 是 /* */,這個是SQL的標準 可是MySQL擴張了解釋 的功能好比註釋/**/在起頭的/*後頭加了!變成了/*!*/數據庫
咱們叫它爲內聯註釋安全
又好比咱們在內聯註釋!後加50001變成了/*!50001*/,那麼這又是什麼意思呢?
這裏的50001表示的是 數據庫是5.00.01以上版本,該語句纔會被推行測試
咱們在繞waf過程當中,在構造payload繞過的同時還要注意把咱們預期的sql語句能夠帶入數據庫順利執行,那麼咱們看上述三種註釋在mysql中的運行狀況:3d
能夠看到咱們在原先的select * from wy;基礎上加上了註釋符,它還會正常執行咱們的sql語句blog
當前測試數據庫版本爲5.5,因此咱們/*!50001 select * from wy */; 能夠順利執行基礎
但/*!56001 select * from wy */; 不能順利執行,緣由就是我上面提到過的,這句要執行條件必須是數據庫版本大於等於5.60.01,而咱們當前版本爲5.5select
因此不能成功執行sql語句
瞭解了上面的東西后,咱們即可以嘗試使用註釋符萊繞過waf了
這裏測試用的是3.0版本的安全狗
payload以下: