今年十八,喜欢ctf-web

举报
_nojava 发表于 2022/12/02 18:40:51 2022/12/02
【摘要】 本来想早点睡,明天九点多有课,翻来覆去睡不着,抽了根烟,闲着也是闲着,12月就要准备考试,准备过年放大假了。今年最后一篇文章。有人说:你们这帮打CTF的都说web简单,没看简单到哪去。那好,我今天就说几个超级简单的web题目,题目来自bugku 1、滑稽想想最简单的web题目是啥F12直接出flag刚进来就是铺天盖地的滑稽,吓劳资一跳直接F12,flag轻松获取 2、计算器进来之后是个这玩意...

本来想早点睡,明天九点多有课,翻来覆去睡不着,抽了根烟,闲着也是闲着,12月就要准备考试,准备过年放大假了。

今年最后一篇文章。

有人说:你们这帮打CTF的都说web简单,没看简单到哪去。

那好,我今天就说几个超级简单的web题目,题目来自bugku

1、滑稽

想想最简单的web题目是啥

F12直接出flag

刚进来就是铺天盖地的滑稽,吓劳资一跳

直接F12,

flag轻松获取

2、计算器

进来之后是个这玩意,56+26

。。。

有点难为人了,我直接通过计算器得知等于82

往里输呗

一输,发现不对劲,只能输入一个啊,那问题一定出在前端,看看源代码

maxlength(最大长度)=‘1’

直接改成2

输完点验证

看到这是不是觉着web挺简单的了,别急,难的在后边

知道get/post吧

3、GET

进来之后,发现是这么个玩意,简单的php代码

通过get方式读取数据存储到what变量里,然后输出

如果what==flag,输出flag

get请求最大的特点就是喜欢把乱七八糟的东西放到链接里,那我直接反客为主

成功获得flag

4、POST

post就不像get那么简单啦。

但是有简便方法,我不讲正常方法了。

正常就是通过post传递一个what=flag的参数进去,可以通过hackbar来实现

简便方法

winR cmd

curl -d what=flag + 链接

以下仅做了解

参数 描述
-I/–head 只显示传输文档,经常用于测试连接本身
-o/–output 把输出写到该文件中,必须输入保存文件名
-O/–remote-name 把输出写到该文件中,保留远程文件的文件名
-F/–form 模拟表单提交
-s/–silent 静默模式,不输出任何东西
-S/–show-error 显示错误,在选项 -s 中,当 curl 出现错误时将显示
-L/–location 跟踪重定向
-f/–fail 不输出错误
-n/–netrc 从netrc文件中读取用户名和密码
–netrc-optional 使用 .netrc 或者 URL来覆盖-n
–ntlm 使用 HTTP NTLM 身份验证
-N/–no-buffer 禁用缓冲输出
-p/–proxytunnel 使用HTTP代理
–proxy-anyauth 选择任一代理身份验证方法
–proxy-basic 在代理上使用基本身份验证
–proxy-digest 在代理上使用数字身份验证
–proxy-ntlm 在代理上使用ntlm身份验证
-P/–ftp-port 使用端口地址,而不是使用PASV
-M/–manual 显示全手动
-Q/–quote 文件传输前,发送命令到服务器
-r/–range 检索来自HTTP/1.1或FTP服务器字节范围
–range-file 读取(SSL)的随机文件
-R/–remote-time 在本地生成文件时,保留远程文件时间
–retry 传输出现问题时,重试的次数
–retry-delay 传输出现问题时,设置重试间隔时间
–retry-max-time 传输出现问题时,设置最大重试时间
–socks4 用socks4代理给定主机和端口
–socks5 用socks5代理给定主机和端口
-t/–telnet-option Telnet选项设置
–trace 对指定文件进行debug
–trace-ascii Like 跟踪但没有hex输出
–trace-time 跟踪/ 详细输出时,添加时间戳
-T/–upload-file 上传文件
-u/–user 设置服务器的用户和密码
-U/–proxy-user 设置代理用户名和密码
-V/–version 显示版本信息
-w/–write-out [format] 什么输出完成后
-x/–proxy 在给定的端口上使用HTTP代理
-X/–request 指定什么命令
-y/–speed-time 放弃限速所要的时间。默认为30
-Y/–speed-limit 停止传输速度的限制,速度时间’秒
-z/–time-cond 传送时间设置
-0/–http1.0 使用HTTP 1.0
-1/–tlsv1 使用TLSv1(SSL)
-2/–sslv2 使用SSLv2的(SSL)
-3/–sslv3 使用的SSLv3(SSL)
–3p-quote like -Q for the source URL for 3rd party transfer
–3p-url 使用url,进行第三方传送
–3p-user 使用用户名和密码,进行第三方传送
-4/–ipv4 使用IP4
-6/–ipv6 使用IP6
-#/–progress-bar 用进度条显示当前的传送状态

5、你必须让它停下

简单描述一下,这是个不断刷新的网页,只有当图片成功刷出来的时候我们才有机会获得flag,有的师傅直接抓包上了,没必要

ctrl u直接看源代码,优点是这里不会一直刷新

直接F5刷新,省心省力

当图片为10.jpg的时候,后面成功显示flag

6、头等舱

进来之后啥也没有,源代码也是

头等舱。。。

多少沾点。。不是,

多少和头文件有点关系

抓包

7、本地管理员

这是嘛玩意。。。

先F12

base64加密。去网站解一下

啥也别说了,这是密码。

账号是啥?

管理员系统,还能有啥

admin呗

进去之后被封IP了

再思考一下。。。

本地管理员。。

本地。

打开抓包软件

在头文件里把IP地址改为本地127.0.0.1/localhost

8、成绩查询

进来,第一眼,sql注入!

抓包,找raw

把raw里的东西存在一个文件里,我命名为1.txt

然后sqlmap跑

 sqlmap.py -r 1.txt -p id current-db

-r – > 加载一个文件

-p – > 指定参数

-– current-db – > 获取当前数据库名称

爆出数据库名叫skctf

接着爆表

sqlmap.py -r 1.txt -p id -D skctf --tables

-D我个人觉着就是database的意思哈,方便记忆。

–tables就是爆表

爆出来有个叫fl4g的,差不多flag就在里面了

接着爆字段

sqlmap.py -r 1.txt -p id -D skctf -T fl4g --columns

-T就是tables

columns是字段

接下来爆字段里的内容

sqlmap.py -r 1.txt -p id -D skctf -T fl4g -C skctf_flag --dump

成功爆出flag

总结下学习方法:

  1. 实战效果远超于听课,听100节课不如做一道题
  2. 不会的先自己研究,确认自己解决不了再求人
  3. 这个方向注定要涉及很多工具,如果不用kali内置的话,自己配是个辛苦的过程,多学,多看,多听
  4. 最好不要选小众的工具,因为出问题的时候,可参考的资料真的很少
  5. 不要图省力,举个栗子:就算有sqlmap这种自动注入的工具,也先学完手工注入
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。