學習筆記 MYSQL報錯注入(count()、rand()、group by)

來源:互聯網
上載者:User

標籤:多次   http   注入   group   部分   mysq   ase   ror   bsp   

首先看下常見的攻擊載荷,如下:

select count(*),(floor(rand(0)*2))x from table by x;

然後對於攻擊載荷進行解釋,

floor(rand(0)*2) 查詢表中內容大於等於3條會報錯。一部分原因,因為floor(rand(0)*2)是有規律和固定的。

如果不理解,可以用資料庫做下實驗。select floor(rand(0)*2) from table ,資料量最好10條左右。你會發現一串0110110011……有規律的數字。

再然後select count(*) from table group by x,這句話再MYSQL中執行,會建立虛擬表,虛擬表用來統計。

例如:表中有a欄位12條,語句會逐一在虛擬表中累加計數,統計結束後返回。

最後看下select count(*) from table group by floor(rand(0)*2),查詢過程。

由於floor(rand(0)*2)是有規律的(011011001110....),語句會多次執行,虛擬碼如下:

1、select count(*) from table group by 0

2、select count(*) from table group by 1

3、select count(*) from table group by 1

4、select count(*) from table group by 0

5、select count(*) from table group by 1

......

第一次為0跳過,第二次為值為1計數1,第三次值為1計數2,第四為0跳過,第五次值為1,新插入資料(因為第四次是0),由於新插入資料主鍵索引值與之前的主鍵索引值相同所以報錯。

 

具體攻擊載荷,請見https://www.waitalone.cn/mysql-error-based-injection.html

 

學習筆記 MYSQL報錯注入(count()、rand()、group by)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.