SQL堆疊註入簡介
今天繼續給大傢介紹Linux運維相關知識,本文主要內容是SQL堆疊註入。
免責聲明:
本文所介紹的內容僅做學習交流使用,嚴禁利用文中技術進行非法行為,否則造成一切嚴重後果自負!
再次強調:嚴禁對未授權設備進行滲透測試!
一、SQL 堆疊註入簡介
所謂SQL堆疊註入,指的是在存在SQL語句交互的場景下,通過分號之間的間隔,使得能夠一次性得執行多條SQL語句。
MySQL數據庫支持使用分號作為間隔,一次性的執行多條SQL語句,執行結果如下所示:
SQL堆疊註入通常可以幫助我們向站點內部的數據庫中插入或者刪除數據,隻需要在正常的而查詢SQL語句後面拼接insert或者delete語句即可。需要註意的是我們在進行SQL堆疊註入的過程中,一定要註意SQL語句的閉合。
此外,SQL堆疊註入也有其局限性,並不是所有的數據庫都支持SQL堆疊註入,即使是支持堆疊註入的數據庫,也存在API或者引擎方面的限制。
二、SQL堆疊註入實戰
下面,我們就進行SQL堆疊註入的實戰。
我們使用sqli_lab靶場的38關,構造payload如下所示:
http://127.0.0.1/sqli/Less-38/?id=1';insert into users values(17,%'admin','admin')–+
該payload執行結果如下所示:
以上可以看出,我們的SQL堆疊註入實驗成功,向數據庫內插入瞭數據!
到此這篇關於SQL堆疊註入詳解的文章就介紹到這瞭,更多相關SQL堆疊註入詳解內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- MySQL長字符截斷的實現示例
- sql查詢語句教程之插入、更新和刪除數據實例
- 圖文詳解Mysql中如何查看Sql語句的執行時間
- 圖文詳解HTTP頭中的SQL註入
- mysql ON DUPLICATE KEY UPDATE重復插入時更新方式