![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
SQL注入
文章平均质量分 88
SQL注入
bfengj
vegetable web dog
展开
-
Pwnhub2021七月赛NewSql(mysql8注入)
Pwnhub2021七月赛NewSql(mysql8注入)前言以前虽然知道mysql8的sql注入,但是没有真正的去了解过,正好昨天晚上知道了pwnhub最近的比赛里出了这道题,就顺便复现,学习一下mysql8的SQL注入新特性。学习文章MYSQL8.0注入新特性通过这篇文章学习一下基础的知识。基础知识补充文章中使用了information_schema.SCHEMA等来得到数据库,然后得到数据表,但实际上有这么个数据表information_schema.TABLESPACES_EXTEN原创 2021-07-14 13:55:38 · 1661 阅读 · 1 评论 -
[安洵杯 2019]不是文件上传
知识点SQL注入WP进入环境,有一个upload.php可以传文件,有一个show.php可以查看上传的列表,发现有点像是存入了数据库,再考虑到以前似乎听说过文件上传中文件名的SQL注入,就猜测这题应该其实是一个SQL注入。在filename那里尝试了一下,一开始是1.png可以,1.png'提示我必须上传图片,再考虑到show.php那里的回显,文件名是被加密的,因此猜测后端可能是把.png前面的东西单独的处理,存入了数据库,于是这样:1'.php,果然报wrong了,再试试1'or'1.php原创 2021-04-13 20:43:59 · 323 阅读 · 0 评论 -
[VNCTF 2021]realezjvav 复现
前言这次VNCTF的题目还是挺难的,web唯一一道php直接把我按着锤,只会php的我居然第一时间先去复现这道java(笑)复现跟着ha1师傅的WP走一遍,中间自己还好没有出什么太大的问题,虽然不会java,但是也拿SpringBoot写过一点点东西,对于“大名鼎鼎”的fastjson也是有所耳闻。进入环境,f12看一下源码,可以看到注释里写的:both username and password are right , then you can enter the next level。再根据h原创 2021-03-16 16:37:29 · 1165 阅读 · 3 评论 -
Thinkphp 5.0.9 SQL注入
前言创建:composer create-project topthink/think=5.0.9 thinkphp5.0.9 "require": { "php": ">=5.4.0", "topthink/framework": "5.0.9" },index控制器这样写:<?phpnamespace app\index\controller;class Index{ public function index()原创 2021-03-10 19:19:36 · 860 阅读 · 0 评论 -
Thinkphp5 聚合函数 SQL注入
前言这次的SQL注入问题在于使用了mysql的聚合函数:本次漏洞存在于所有 Mysql 聚合函数相关方法。由于程序没有对数据进行很好的过滤,直接将数据拼接进 SQL 语句,最终导致 SQL注入漏洞 的产生。漏洞影响版本: 5.0.0<=ThinkPHP<=5.0.21 、 5.1.3<=ThinkPHP5<=5.1.25composer create-project topthink/think=5.1.25 thinkphp5.1.25 "require": {原创 2021-03-09 14:03:58 · 498 阅读 · 0 评论 -
Thinkphp 5.1.16~5.1.22 order by SQL注入
前言这次的SQL注入点在parseOrder()方法中,影响版本是5.1.16~5.1.22。创建:composer create-project topthink/think=5.1.22 thinkphp5.1.22 "require": { "php": ">=5.4.0", "topthink/framework": "5.1.22" },composer updateindex控制器写法: public function原创 2021-03-08 21:39:42 · 575 阅读 · 0 评论 -
Thinkphp 5.0.10 SQL注入
前言开始tp5.0.10的SQL注入,漏洞点位于parseWhereItem()方法。先创建工程,再改composer.json,再composer update。composer create-project topthink/think=5.0.10 thinkphp5.0.10 "require": { "php": ">=5.4.0", "topthink/framework": "5.0.10" },composer update原创 2021-03-05 23:32:45 · 1600 阅读 · 0 评论 -
Thinkphp 5.1.17 SQL注入
前言之前审计的是5.0.15的parseData函数漏洞导致的SQL注入。这次审的是5.1.17的parseArrayData函数漏洞导致的SQL注入。影响版本:5.1.6<=ThinkPHP<=5.1.7 (非最新的 5.1.8 版本也可利用)。composer create-project topthink/think=5.1.17 thinkphp5.1.17然后改一下composer.json,再composer update就好了。然后设置一下database.php:原创 2021-03-05 17:18:30 · 1116 阅读 · 1 评论 -
Thinkphp5.0.15 SQL注入
前言刚把tp5的RCE给审的差不多了,审的很爽,接下来审一下thinkphp5各个版本的SQL注入。代码不用说了,composer先下载下来。composer create-project topthink/think=5.0.15 thinkphp5.0.15下载来的%99都是版本不对,改一下composer.json然后composer update就可以了。index控制器那里写一下insert语句:class Index{ public function index()原创 2021-03-05 10:16:33 · 1757 阅读 · 2 评论 -
thinkphp3.2.3 SQL注入漏洞复现
前言具体代码可以composer或者github或者一些其他网站上下载。然后本地创建一下数据库,改一下数据库的配置,在ThinkPHP/Conf/convention.php下面:由于比较懒,我直接用sqli-labs的数据库了,在IndexController.class.php里面写个查询:class IndexController extends Controller { public function index(){ $data = M('users')->原创 2021-02-24 21:49:53 · 5655 阅读 · 1 评论 -
CTFshow-WEB入门-SQL注入(下)
web227按照上一题的方法,发现查不出flag表了,把ctfshow_user表给爆了一下也没flag,然后写一句话马,蚁剑连上去还是找不到flag,人傻了。。。看了一下y4师傅的WP,原来这题考的是存储过程:存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。存储过程思想上很简单,就是数据库 SQL 语言层面原创 2021-02-11 17:31:14 · 2055 阅读 · 2 评论 -
CTFshow-WEB入门-SQL注入(中)
web199很懵。。。把括号给过滤了,所以varchar(255)就不能用了,考虑改成其他的类型,但是不知道到底哪里出了问题,每次一改不是没效果,就是查不出来东西。一旦alter出错就要重新启容器,很烦。看了一下y4师傅的姿势,服了1;show tables;ctfshow_user对,最简单的方法,一直都没想起来,我太菜了。。。web200同上web201开始学习sqlmap的使用。sqlmap的使用手册:sqlmap不过因为是纯英文,英文太菜的我肯定看不太懂,不过也不需要多深入的原创 2021-02-08 21:03:44 · 1843 阅读 · 2 评论 -
CTFshow-WEB入门-SQL注入(上)
web171无任何过滤,直接注就完事了。' union select 1,2,group_concat(password) from ctfshow_user-- -web172' union select 1,group_concat(password) from ctfshow_user2--+web173' union select 1,2,group_concat(password) from ctfshow_user3-- -虽然对返回的结果进行了过滤flag,但是flag是u原创 2021-02-05 10:49:37 · 2614 阅读 · 6 评论 -
[NCTF2019]SQLi
知识点%00截断regexp注入WP明天考数据库,概念属实背不下去了,做一道sql注入来放松放松。首先进入环境,提示要try to make the sqlquery have its own results。看到语句是这样:select * from users where username='' and passwd=''猜测可能过滤了很多东西,经过信息收集发现存在robots.txt,里面写了hint.txt,里面的内容如下:$black_list = “/limit|by|原创 2020-12-31 00:03:20 · 897 阅读 · 0 评论 -
[RoarCTF 2019]Online Proxy
知识点二次注入WP这题挺坑的点就是会被误以为是SSRF,我就陷在SSRF里出不来了。看了WP,发现是SQL二次注入。根据f12,看到有这个:根据当前和之前ip的显示,猜测是把ip存到了数据库中,因此通过更改x-forwarded-for可以有不同的回显,而且先注入0' or length(database())>0 or '0,然后再请求2次x-forwarded-for为1,这时候回显出来的Last Ip居然是1,因此判断存在x-forwarded-for的二次注入。但是这题是有原创 2020-12-26 16:09:21 · 676 阅读 · 0 评论 -
[GYCTF2020]Ezsqli
知识点SQL注入绕过information的过滤ascii偏移WP进入环境,根据题目意思已经很明显是SQL注入了,经过测试是个数字型注入,过滤了一些东西,union和in被过滤了,in过滤导致我们用不了information_schema,因此要考虑绕过。这题可以替代information_schema有几种方式,但是我踩了一个坑。这题的表有2个:f1ag_1s_h3r3_hhhhh和users233333333333333,这题可以用来替代information_schema的有三个:s原创 2020-12-16 12:02:33 · 482 阅读 · 1 评论 -
[RCTF2015]EasySQL
知识点二次注入报错注入WP一道距离现在有点久的SQL注入题目,不过做起来还是学习到了很多东西。进入环境稍微分析一下,可以发现存在注册,登录,查看用户信息,更改密码和查看文章这些功能。从题目就可以知道,这是一道SQL注入题目,要么就是注入出用户名和密码然后登录得到flag,要么就是flag在数据库里。但是怎么找注入点是一个难事。我试了很久还是没能找到,最后看了WP。还是自己SQL注入学的太菜了,我接触过的二次注入要么是给源码,然后审源码审出二次注入,要么就是类似那种用户名回显的二次注入,这种改原创 2020-12-12 00:06:04 · 857 阅读 · 0 评论 -
[CISCN2019 华北赛区 Day1 Web5]CyberPunk
知识点文件包含代码审计二次注入,报错注入WP真的很烦,从昨天晚上开始,今天早上想了好几个小时没想明白这题怎么弄flag。实在受不了了看了WP,才发现这flag名字不是/flag而是/flag.txt,草了,又因为这样的题目白白浪费了几个小时的时间。除去flag文件名,这个题目不算难,就是基本的代码审计,找二次注入点然后注就完事了。。首先进入环境,对这个环境的功能稍微了解一下,f12看一下源码,发现了提示?file?经过尝试,发现是文件包含,利用PHP伪协议读一下所有的源码,还尝试直接读/原创 2020-12-10 12:37:43 · 894 阅读 · 0 评论 -
[CISCN2019 总决赛 Day2 Web1]Easyweb
知识点备份文件SQL注入文件上传和PHP的短标签WP又跪在了SQL注入上,不是不会注,而是跪在了如何转义单引号那里。进入环境看一下robots.txt,有Disallow: *.php.bak经过一揽子的测试,发现有image.php.bak,下载下来审一下代码:<?phpinclude "config.php";$id=isset($_GET["id"])?$_GET["id"]:"1";$path=isset($_GET["path"])?$_GET["path"]:"原创 2020-12-01 23:03:30 · 245 阅读 · 0 评论 -
[WUSTCTF2020]颜值成绩查询
知识点SQL注入。。WP又是一道简单的SQL注入。。没啥好说的直接讲一下思路叭。是一个数值型注入,经过测试过滤了空格,用/**/绕过过滤,直接用布尔注入,最终脚本如下:import requestsurl = 'http://b72a85e9-236a-4b72-b8f7-93bbd3f65b4f.node3.buuoj.cn/?stunum='flag=''for i in range(1,50): min=32 max=125 while 1:原创 2020-12-01 18:50:31 · 139 阅读 · 0 评论 -
[极客大挑战 2019]FinalSQL
知识点SQL盲注python脚本知识点这题按照提示是盲注了,注入点也是在id那里,不过自己对于盲注学的实在是太菜了,利用的^这个姿势:?id=1^(length(database())<5)^1真假全靠中间的语句来判断,然后写一个python脚本来爆一下:import requestsurl='http://5ff6066f-48be-4bf6-9ab1-c2ca3f2abf41.node3.buuoj.cn/search.php?id=''''爆数据库长度'''''原创 2020-11-21 00:00:59 · 108 阅读 · 0 评论 -
[BJDCTF 2nd]简单注入
知识点SQL注入,利用\来转义单引号。WP这题查看一下robots.txt,会发现hint.txt,然后就是这个:select * from users where username='$_POST["username"]' and password='$_POST["password"]';感觉是很简单的SQL注入,但是过滤了单引号,结果自己没做出来。。。其实绕过的方式就是利用\来转义,自己当时也试过,但是不知道怎么回事没看出来自己成功了。。。这题的爆表的姿势怎么说呢。。就是直接对us原创 2020-11-19 15:54:18 · 206 阅读 · 0 评论 -
[SWPU2019]Web1
知识点二次注入绕过information_schema无列名注入WP进入环境后随便注册登录,经过尝试,最终发现了发布广告的title存在二次注入,当我们点击广告详情的时候就实现了二次注入。不过这题的限制也有些烦,过滤了or之类的。自己没能做出来主要的原因还是不太自信。。。自己在尝试union注入的时候发现列的数量老是不对,试到10列的时候就以为自己的注入姿势有问题,就没有继续尝试,换成bool注入,虽然脚本确实可以跑,但是在buuctf上会429,很烦。后来调整思路,猜测还是union注入,但原创 2020-11-18 18:48:20 · 134 阅读 · 0 评论 -
[极客大挑战 2019]HardSQL 1
前言都是自己已知的SQL注入姿势的运用。。自己还是太菜了。。。WP还是那个登陆界面,还是进行SQL注入。经过一些尝试,发现过滤了空格,可以用括号来过滤,但是问题是我对于SQL语句里的括号的使用还是非常的不熟练,并没有真正理解它,但是我在爆表名的时候卡住了。。。这题其实就是报错注入,先爆数据库名:?username=admin'or(updatexml(1,concat(0x7e,(database()),0x7e),1))or'1&password=1然后是爆表名的时候要注意过滤了原创 2020-11-09 21:02:24 · 664 阅读 · 0 评论 -
[GXYCTF2019]BabySQli 1
前言一道比较基本的SQL注入题目。。。主要的卡点是最后的md5那里,自己想到了要经过md5判断,但是想的有点问题。。WP进入环境进行SQL注入的测试,经过尝试大致能发现过滤了括号,or,=等等,过滤了括号导致了很多函数我们不能用,正常的注入思路是这样:name=-1' union select 1,'admin','1-- -&pw=1但是会提示密码错误。如果抓包的话,响应头里会有这个:<!--MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBS原创 2020-11-09 18:14:09 · 1242 阅读 · 0 评论 -
2017-赛客夏令营-Web-Injection V2.0
WP还是一道SQL注入的题目。经过尝试,用户名是admin,但是过滤了空格和括号。空格可以用/**/或者TAB来绕过,但是括号的过滤导致了各种函数都不能使用。我在网上查找绕过括号过滤的方式,找到了order by盲注,文章如下:sql注入之order by注入本来我以为的是要不断的爆破密码,但是我直接就爆出flag了:本来这种方式的用法是这样的,如果你输入的密码比真实的密码小,就会回显admin的结果。如果你输入的密码比真实的密码大,就会回显你select的用户名为1的结果。但是这里却直接爆了f原创 2020-11-06 12:54:43 · 380 阅读 · 0 评论 -
网鼎杯 2018 comment
知识点爆破弱密码git泄露二次注入.bash_historyWP首先进入环境,是一个留言板的东西,而且按照题目描述的SQL,肯定又是SQL注入了。不过还不能直接留言,需要登录。登录就是爆破密码的后三位,爆出来是zhangwei666,然后登录。如果提前用dirsearch扫了的话,会发现存在git泄露。利用工具弄下来,得到2个文件,那个关键的文件内容如下:<?phpinclude "mysql.php";session_start();if($_SESSION['login'原创 2020-10-30 18:00:45 · 703 阅读 · 0 评论 -
网鼎杯 2018 unfinish
前言又是一道SQL注入的题目,只能说自己还是太菜。。会的知识太少,WP进入环境,用dirsearch扫一下,发现有index.php,login.php,register.php。经过很多的尝试,最终发现这是一个二次注入的题目,注入点是在register.php传入的username中。接下来就是如何注入了。我一开始考虑报错注入,但是发现不成功。经过尝试,发现过滤了逗号。这就意味了不能进行报错注入,而且不能通过闭合INSERT后面的(A,B,C)来实现注入。这里我尝试进行union注入,但是过滤原创 2020-10-29 11:03:22 · 2709 阅读 · 1 评论 -
网鼎杯2018 fakebook
知识点PHP反序列化备份文件下载SSRFSQL注入前言我就是fw…又没解出来,主要的问题还是在自己身上,当时sql注入读了username,以为就是我输入的,就没继续爆破了,没想到data居然是序列化的,还有就是SQL注入学的还不好,导致自己没能解出来。WP首先进入环境,有join和login。先用dirsearch扫一下目录,发现存在robots.txt,访问发现存在user.php.bak备份文件。下载下来:<?phpclass UserInfo{ publi原创 2020-10-28 20:53:58 · 328 阅读 · 0 评论 -
“百度杯”CTF比赛 十一月场 Look
前言自己还是太菜了。。这题各种考点自己一个都没做出来,真的感觉都是自己的知识盲区,还要要静下心来慢慢学习。WP第一个点其实可以直接绕过的,但是先不管这个。进入环境后发现页面是空白,正确的解法是Burp抓包:发现相应里有一个X-HT: verify这里还是自己不够敏感啊!题目已经提示有SQL注入了,自己一直苦于不知道注入的参数名。HT其实就是hint,不过自己没有管这个是因为响应头里面X-xxxx的自己基本都不知道是什么意思,以为都是本来就有的,就没去管,导致遗漏了这个重要的信息。因此,自己以原创 2020-10-27 15:50:02 · 825 阅读 · 1 评论 -
“百度杯”CTF比赛 十月场 登录
前言一直觉得SQL注入是自己的弱项,主要的问题还是自己没有真正的做过一些和要和数据库连接的后端的项目,仅仅写过一个留言板。自己对于SQL注入的理解还是太浅。还是需要找时间去写点代码,去加深理解。这题的SQL注入也确实是让自己涨姿势了。自己可以说学了MySQL就没有用过LIKE,一直以为它在SQL注入里没用,没想到居然可以这样。WP进入环境,是一个登录页面。尝试进行SQL注入,发现username为admin' or 1=1#的时候显示密码错误,username为admin' or 1=2#的时候显示原创 2020-10-27 00:09:40 · 495 阅读 · 0 评论 -
“百度杯”CTF比赛 十二月场 Blog
考察的知识点kindeditor编辑器的一个遍历漏洞SQL的INSERT注入文件包含漏洞其中kindeditor编辑器的一个遍历漏洞其实可有可无,因为你能得到的无非是目录下的所有文件,这题的所有文件都可以用dirsearch扫出来,因此这个点没什么用。而且我这里网不太好,那个编辑器打开是这样的:网太差,加载不全,也没法利用。。。因此第一个知识点这里就没有去利用了。WP这题真正的注入点是在post.php那里,我们需要注册个账号然后登录,进行SQL注入,获得admin的密码。不过因为自原创 2020-10-25 23:14:48 · 339 阅读 · 0 评论 -
“百度杯”CTF比赛 十月场 Vld
知识点Vulcan Logic Dumper代码审计SQL注入WP首先进入环境,查看源码发现index.php.txt,进入后发现是我看不懂的东西。。可以上网查Vulcan Logic Dumper,还弄懂怎么从这些东西来还原php代码,还原的代码如下: 1 <?php 2 3 echo ‘do you know Vulcan Logic Dumper?<br>‘; 4 $a=$_GET[‘flag1‘]; 5 $b=$_GET[‘flag原创 2020-10-25 17:43:34 · 296 阅读 · 1 评论 -
[CISCN2019 华北赛区 Day2 Web1]Hack World 1
前言这道题考察的就是SQL注入,其中过滤了一些关键词,自己没做出来的主要原因是对于注入类型的判断还有注入的姿势仍然不够熟练,并不是题目很难。WP进入环境后首先我们发现这是一个Post传id的注入,我们要进行注入的表和列都已经给我们了。经过尝试,发现输入1和2的时候存在有意义内容的回显。再经过一系列的尝试,发现过滤了很多东西,空格也被过滤了。这时候我在判断注入类型那里出现了问题。我以为是字符型注入。其实我们输入注入id=2/2,会发现回显的是id=1的内容,因此判断为数字型注入。接下来就是如何注入原创 2020-10-24 18:39:32 · 1112 阅读 · 0 评论 -
“迎圣诞,拿大奖”活动赛题 SQLi
这题的新姿势就是利用sprintf格式化字符串漏洞来实现SQL注入。原创 2020-10-02 21:19:05 · 298 阅读 · 1 评论 -
2017第二届广东省强网杯线上赛 phone number
前言这题因为找不到其他可以利用的点,所以基本上就是SQL注入。但是注入的姿势真的自己没有想到过。既然这题遇到了,以后SQL注入的时候也就多了一种思路。WP这题直接讲解法叭。主要就是注册的那个界面的phone,如果你输入了非数字的话,他会提示你只能输入数字。但是这里用16进制是可以的。而且这里是数值型注入,因此直接构造注入语句,然后变成十六进制,然后登录然后进行check。check那个会执行你注入的语句,相当于二次注入了。因此接下来就是正常的SQL注入了。具体的注入我这里就不说了,我来说一下我遇原创 2020-10-01 17:24:16 · 308 阅读 · 0 评论 -
“百度杯”CTF比赛 十月场 GetFlag
这题主要考察了用python写脚本来爆破md5,然后是SQL注入中的万能密码,然后是文件下载后最后对eval函数的考察。原创 2020-09-30 18:28:07 · 541 阅读 · 0 评论 -
sqli-labs-Less18 User-Agent注入
进入之前看了看题目的提示,是header injection,大致就知道考的是什么了。进入环境,输入admin,admin,回显了127.0.0.1和我们的user agent。这时候我们要抓包看看,想想ip和user-agent哪个是我们可以注入的,发现ip似乎注入不了,只能user-agent注入。接下来的user-agent注入就有些讲究了,需要把注入点闭合的情况给试出来,也可以直接去看源码。如果要试的话,怎么试呢?先输入',发现报错回显了:这里的回显可能看的还是有些迷,但是多少可以猜测出参原创 2020-09-24 20:10:41 · 286 阅读 · 0 评论 -
sqli-labs-Less-15 时间盲注
sqli-labs的这几题是post注入,之前的几天用万能密码都可以过,但是这题用了各种方式都没回显,因此判断是时间盲注。关于万能密码,这里引用一下郁离歌大佬的:1:"or "a"="a2: ')or('a'='a3:or 1=1--4:'or 1=1--5:a'or' 1=1--6:"or 1=1--7:'or'a'='a8:"or"="a'='a9:'or''='10:'or'='or'11:1 or '1'='1'=112:1 or '1'='1' or 1=113: 'O原创 2020-09-24 15:38:38 · 481 阅读 · 0 评论 -
sqli-labs-Less8关于布尔盲注
这是一道布尔注入的题目,其实也可以时间盲注,但是这里介绍一下bool注入。关于布尔注入,主要使用的就是:Length()函数 返回字符串的长度Substr()截取字符串Ascii()返回字符的ascii码sleep(n):将程序挂起一段时间 n为n秒if(expr1,expr2,expr3):判断语句 如果第一个语句正确就执行第二个语句如果错误执行第三个语句具体的过程这里就不介绍了,因为非常容易上手,就是有点费手,所以最好不要手注。因此可以使用burp suite来进行注入或者sqlmap来原创 2020-09-23 19:00:53 · 345 阅读 · 0 评论