【CTF】关于SQL盲注的细节

ctfsql注入——基于时间的 基于时间的 原理:利用sleep()或benchmark()等函数让mysql执行时间变长,并结合判断条件if(expr1,expr2,expr3),然后通过页面的响应时间长短来判断语句返回的值是TRUE还是False,从而猜解一些未知的字段。 函数sleep(duration): 睡眠(暂停)时间为duration参数给定的秒数,然后返回0。若sleep()被中断,它会返回1。 select * from table where id=1 and sleep(3); select * from tab 阅读详情

目录:

0x01 CTF题目中关于load_file()、char()、hex()、unhex()、like、过滤空格、过滤引号及相关问题

0x02 某简单题目中关于order by利用排序布尔盲注题目及源码

0x03 某CTF题解,盲注+泄露+反序列化

 

 

 

0x01 CTF题目中关于load_file()、char()、hex()、unhex()、like、过滤空格、过滤引号及相关问题

1、load_file()函数

它用来读取文件内容。

select load_file('c:/clog.txt');

盲注时,可以配合ascii(substr(select load_file('c:/clog.txt'))) > 97 使用,泄露出文件内容。

 

load_file重点好处在于,当过滤引号后,into outfile 'xxxx'  就不能用了,但load_file参数支持0x、char()转换结果、引号、select子句结果。

它确实太好了所以再强调一下hhhh

参数可以用4种:

loadfile(0x616161);

loadfile( char(97,97,97) );

loadfile('c:/clog.txt');

loadfile( (select path form table where id=1) );

 

着实有些强大,给SQL注入泄露文件内容提供了方便

可以泄露出config.php看看数据库连接密码。

 

另外强大之处在于位置灵活,load_file()在union中、在where中都可以

在union中:

union后的红色部分,成功读到了c:/clog.txt的内容,在回显第三行

前两行是第一个select的。

绿色是记得union时,切记保持字段数和第一个select一致!2个字段,易错。

 

在where中:

select * from goods where id=1 and substr( load_file('c:/clog.txt'),1,1 )='a';

select * from goods where id=1 and substr( load_file('c:/clog.txt'),1,1 )='f';

load_file获得的内容是flag 猜第一个字符是a无返回,猜是f正常满足where id=1 and true

 

(题外话:直接在MYSQL中可以select附加insert语句,但PHP函数mysql_query不能执行)

 

 

2、char()函数

用来ascii码转字符串。

它可以配合load_file函数,作为其参数过防火墙。

select char(97,98,99);

可以得

【YOLO 系列】基于YOLO V8的智能车载交通标志识别系统【python源码+Pyqt5界面+数据集+训练代码】 本文详细介绍了基于YOLO V8构建智能车载交通标志识别系统的完整流程。从环境搭建、数据集准备、模型训练到PyQt5图形界面开发,提供了Python源码和实战代码,帮助开发者快速实现高精度、实时的交通标志检测应用,提升驾驶辅助系统的开发效率。 阅读详情

相关推荐

Pytorch中CrossEntropyLoss()详解

交叉熵主要是用来判定实际的输出与期望的输出的接近程度。举个例子:在做分类训练的时候,如果一个样本属于第 K 类,那么这个类别所对应的输出节点的输出值应该为1,而其他节点的输出都为0,即 [0,0,1,0,….0,0] ,这个数组也就是样本的 Label,是神经网络最期望的输出结果。我们用交叉熵损失函数来衡量网络的实际输出与正确标签的差异,利用这种差异经过反向传播去更新网络参数。交叉熵:它主要刻画的是实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分布就越接近。

flyingluohaipeng的博客 3841

CTF中几种通用的sql手法和注入的一些tips

转载自:https://www.anquanke.com/post/id/160584 0x00 前言 在ctf比赛中难免会遇到一些比较有(keng)趣(die)的注入题,需要我们一步步的绕过waf和过滤规则,这种情况下大多数的注入方法都是。然而在过程中由于这些过滤规则不太好绕过,这时候就会无从下手,下面分享一下自己在比赛中总结几种比较通用的手法和一些小tips,希望能在今后大家的...

xuchen16的博客 2807

修正剑桥模型子程序,正常固结软粘土的本构模型.rar

修正剑桥模型子程序,正常固结软粘土的本构模型.rar

SQL布尔 —— 【WUST-CTF2020】颜值成绩查询

sql布尔

Ve99tr’s Blog 2112

ctf各种sql脚本

以下的几个脚本都是自己写的(有参考别的大佬),代码可能不是最精简,但是还算顺眼 核心算法都是二分法,不推荐时间(速度硬伤) 脚本payload参考题目:[第一章 web入门]SQL注入-2 / 极客大挑战finilysql(buuctf) 1.通过post传参的脚本 用的时候修改post参数和个数 1.1 基于异或,布尔等: import requests url = 'http://736aa374-b497-441f-9b6a-a1c91f9b182b.node4.buuoj.cn:

qq_51862722的博客 3647

php基于错误的,从一道CTF代码审计题看SQL

文章难易度【★★★】文章阅读点/知识点: PHP代码审计、MySQLCTF技巧文章作者: 0h1in9e本文参与i春秋社区原创文章奖励计划,未经许可禁止转载0x01前言笔者在上个月参加一个CTF比赛的时候,遇到了一个PHP代码审计类的题目。具体地来说是关于一道SQL类的题目。做了这道题之后,对SQL有了更深入的了解,今天给大家分享下这道CTF题目以及解法,以及透过这个题目聊聊。0...

weixin_42299427的博客 695

php 防注入 过滤逗号,SQL注入之逗号过滤绕过

在常规CTFsql注入的时候都会过滤一些我们不喜欢被过滤的字符,比如这次的逗号,在的时候用到substr函数和union的查询都用到了逗号,过滤了逗号怎么绕过呢?百度了一番。。。。。百度真是。。。。。还是谷歌吧,终于找到了一些方法,这里记录下来最简单的吧0x0我们用sqli-labs平台练手,http://127.0.0.1/sqli-labs/Less-1/index.php?id=1...

weixin_34900470的博客 475

ctfshow web

前面都是在flag之前的返回都一样,而g不一样则可以判断出来flag的第一位在7号位,依次类推测出所有flag。随便传username和password发现没有p参数那我们就把ssrf传在returl。但是我说过题目改了所以我们只能用类似的方法而不能用一样的脚本,暂时打不通欠着。我拿直接的去打了半天没反应,原来是要url再编码一次。除了用户名不能是admin其他的都行。我原先是以为可以覆盖密码结果我想多了。传完之后访问小马rce即可。这道题被改了一点小改动。这道题就是覆盖密码了。

2301_81040377的博客 747

SQL注入MySQL查询语句、URL编码、无回显)

文章目录MySQL常用查询语句释URL编码 MySQL常用查询语句 select user(); 当前MySQL 登录用户名 select database(); 当前MySQL 数据库名 select version(); 当前MySQL 版本 select @@version; 当前MySQL 版本 select @@basedir; 当前MySQL 安装路径(MySQL安装目录) select(length..

诚邀网络通信领域商务合作 2348

CTF竞赛中ROLLUP语句的隐秘应用。

该语句在生成分组报表时会添加额外的汇总行,这些汇总行可能包含敏感信息。第二个查询会在结果中添加地区小计行和总计行,形成类似数据透视表的结构。这种特性在CTF题目中可能被设计为信息泄露的漏洞点。上述代码会生成每个部门的工资总和,并在最后添加一行所有部门的工资总和。当flag为1和0的计数与汇总行匹配时,可以确认数据库名的首字母。这种方法比传统布尔更隐蔽,因为它在正常业务查询的。在CTF(Capture The Flag)竞赛的数据库相关题目中,子句的扩展,它在结果集中添加了额外的超级聚合行。

YgM_kfjo的博客 348

CTFHUB SQL注入——时间 附自己写的脚本

介绍 时间和上一篇布尔一样都是,都需要借助length,ascii,substr这些神奇的函数来猜测各项信息。它们的差别是猜测成功的依据。 布尔的话如果查询有结果,一般会有一个success_flag,比如在上一题里就会返回query successfully。我的脚本也就是request返回值里有没有这个文本来判断是否查询成功的。 但是时间不一样,它不光不给你查询的内容的回显,不给你报错信息,甚至连布尔里的success_flag也不给你。也就是什么情况呢?你在那里查询,它什么信息

wuuconix's blog 3858

CTF入门笔记之SQL注入

sql注入

qq_37410729的博客 3536

CTF-Web16(涉及布尔脚本以及waf过滤等,难度较大)

16.认真一点 分析: POST提交 id=1 显示Youarein................ id=0 显示Youarenotin............... 有区别就好做了,随便输入id=1pcatissocoooooooooool还是回显Youarein 说明这是字符型注入,1开头的字符串被弱类型等于1,输入id=1'显示Youarenotin,就庆幸了,因为说明单引号没被转义(若是转义了,就应该显示Youarein)。这里作为一名ctfer,有 种直觉就是会有waf,于是PO.

→_→ 905

[WUSTCTF2020]颜值成绩查询

sql注入的布尔 过滤了空格 直接交exp import requests url = "http://8eda0aa2-9a0e-4fd3-93c1-f3face942c15.node3.buuoj.cn/" payload =r"_-abcdefghijkmlnopqrstuvwxzy{}123456789!@#$%^&()," flag = "" def colounm(): for i in range(1,50): for j in payload: .

CyhDl666的博客 305

CTFHUB-WEB-SQL注入-布尔

题目告诉我们了,这是个布尔,就不需要一个个试验注入的方法了。接下来的解题思路应当是:首先通过折半查找的方法,通过界面的回显结果找出数据库名字的长度,并通过相同的方法依次找到数据库名字的每个字符、列名,然后再找到flag。自己手动一个个找当然可以,不过速度慢,写个脚本好了。有个工具叫sqlmap,用这个就不需要傻乎乎写脚本了。既然已知了数据库名字和列名,下面就在sqlmap上直接查flag吧(sqlmap实在是太慢了,陆陆续续续了40分钟)。找到数据库名还是叫sqli,估计列名里面有一个flag。

weixin_49539962的博客 581

Bugku-CTF之login3(SKCTF)(基于布尔的SQL

Day41 login3(SKCTF) http://123.206.31.85:49167/ flag格式:SKCTF{xxxxxxxxxxxxx} hint:基于布尔的SQL 本题要点:异或运算、布尔、过滤 打开是一个登录窗口 用bp抓一下包 发送至repeater 没什么新发现........ 随便试试其他用户名,...

weixin_30593443的博客 531

ctf-web-sql注入

题目链接:跳转提示 打开网页,一个登陆页面,根据题是本题题型是基于布尔的SQL 首先在用户名处输入admin 得到结果: 即密码确为admin,而如果不输入用户名直接输入密码,发现报错 可见后台是先判断用户名是否正确存在,当用户名正确后再判断密码是否正确。 经测试发现,当出现'空格符','=','and'等字符时,发现会报错显示:‘illegal character’,即知道这些字符会被过滤,可以用括号来避免空格符的使用,用<>(大于或小于)来避免'='的使用 尝试输入

god_001的博客 1万+

CTF Web SQL注入专项整理(持续更新中)

SQL注入专项整理

m0_73734159的博客 6242

CTF-SQL

CTF-SQL

qq_61774705的博客 982

CTF入门之SQL注入

一、字符型注入 <?php require_once('../header.php'); require_once('db.php'); $sql = "SELECT * FROM users where name = '"; $sql .= $_GET['name']."'"; $result = mysql_query($sql); if($result) { ?> <?php while ($row = mysql_fetch_assoc($result)){ echo

PolarPeak的博客 2695

CTF-WEB 一个登录框SQL

一些师兄给了个平台,最近学了很多SQL注入和编写脚本的知识,跃跃欲试,结果这一做就是漫漫长路,还是很多东西不熟悉啊。 首先找注入点: 发现用户名错误和密码错误会分开提示,可以用布尔,(*^▽^*)好高兴。 但是发现,过滤了空格和 *号,没关系,用括号绕过(这一下搞死我了) 开始尝试编写脚本,结果发现简单的reuqests解析不了<div>标签下的内容 ...

weixin_45887311的博客 1万+
上一篇: 【无线安全1】HackRF接收广播
下一篇: SQL花式延时/布尔注入与PHP白名单函数利用方法
publicStr
博客等级 码龄8年 40粉丝 17原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值