前言
🍀作者简介:被吉师散养、喜欢前端、学过后端、练过CTF、玩过DOS、不喜欢java的不知名学生。
🫒每日emo:等我把脸皮磨厚
我今天就说几个超级简单的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