mysql異或運算的sql注入判斷

  異或是一種邏輯運算,運算法則簡言之就是:兩個條件相同(同真或同假)即爲假(0),兩個條件不同即爲真(1),null與任何條件做異或運算都爲null,如果從數學的角度理解就是,空集與任何集合的交集都爲空。

  mysql裏異或運算符爲^ 或者 xor


兩個同爲真的條件做異或,結果爲假

wKiom1V6bq_iUkcwAABEQlyQkaU645.jpg

兩個同爲假的條件做異或,結果爲假

wKiom1V6by7B3J18AAA-9bDKeD4079.jpg

一個條件爲真,一個條件爲假,結果爲真

wKioL1V6cRDwT65LAABGRaNw770989.jpg

null與任何條件(真、假、null)做異或,結果都爲null

wKioL1V6cVLCp0AtAADUa31dzbA518.jpg

說這麼多有什麼用呢?遇到一個異或的sql注入,就是用這種方法去判斷的。


以下是攜程某分站的一個例子,作爲研究技術的參考:

條件爲假的時

wKiom1WI8a6xnNNoAAS8PgWuvEQ784.jpg

條件爲真時

wKioL1WI85zhbWOxAALnY7yLkV8460.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章