攻防世界web新手练习区(2)
弱认证:http://111.198.29.45:43769/
打开是这个页面:
用户名输入1,密码输入2,试试看。会提示你用户名为admin。接下来用burp对密码进行爆破,发现弱口令0123456可跑出来,得到flag
disabled_button:http://111.198.29.45:50438
disabled 属性规定禁用按钮。
被禁用的按钮既不可用,也不可点击。去掉disabled后,则可获取flag
simple.php: http://111.198.29.45:31079
对其代码进行审计:
发现需要以get的方式传入两个参数a和b。
a参数的要求 a必须等于0且a为真
b参数的要求 b不能为数字且b大于1234
这道题的核心问题是理解PHP语言的弱类型
对代码进行分析,用 get 方式获得两个参数 a、b。a 要满足等于 0 并且它不能等于 0,可以 想到弱类型,让 a=0a(0 后加字符串即可)。b 要满足 is_numeric()函数,is_numeric() 函 数用于检测变量是否为数字或数字字符串。利用弱类型,故只要 b 数字部分大于 1234 再加 个字符串即可。
PHP是一种弱类型的语言,对于数字0和空字符串在进行布尔运算的时候都会转换为 false ; == 会自动转换类型然后进行比较,比如字符串 '0' 和数字 0 比较的时候会返回true; 而对于 === 则会同时比较类型和变量值,若类型不相同也不会返回true; is_numeric() 函数用于检测类型是否为数字或数字字符串 所以当a为0且不会转换为false的就是字符串a
通过阅读代码发现需要同时满足 a==0 且 if a 为真,b 不是数字且 b>1234 才会返回 flag 检索 php 的== == 是 不严格 的 比较, 会 先 进 行 类 型 转 换 再 比 较 , 查 看 php 类 型 比 较 表 https://www.php.net/manual/zh/types.comparisons.php 发现“0”为 true,所以可以把参数 a 构造为’0’或者‘alph’这种转换后为 0 但本身不为 False 的 形式 数字和字符混合的字符串转换为整数后只保留数字 B 可以构造为 12345s,类型转换后为 12345,大于 1234 http://111.198.29.45:36234/index.php?a=’0’&b=12345s 得到 flag
get_post: http://111.198.29.45:34567
利用hackbar解决:
攻防世界web新手练习区(2)的更多相关文章
- 攻防世界——web新手练习区解题记录<1>(1-4题)
web新手练习区一至四题 第一题view_source: 题目说右键不管用了,我们先获取在线场景来看一看,我们看到这样一个网页,并且右键确实点了没什么反应,而用到右键一般就是查看网页源码 用快捷键(F ...
- 攻防世界--web新手练习区(1)
1. 题目描述:X老师想让小明同学查看一个网页的源代码,但小明却发现鼠标右键不管用了. http://111.198.29.45:53629 通过阅读题目描述分析,我们需要查看源码,但是鼠标右键 ...
- 攻防世界——web新手练习区解题总结<3>(9-12题)
第九题simple_php: 看题目说是php代码,那必定要用到php的知识,让我们先获取在线场景,得到如下网页 仔细看这个代码,意思大概是: 1.当a==0且a为真时输出flag1 2.当b为数字退 ...
- 攻防世界——web新手练习区解题总结<2>(5-8题)
第五题cookie: 所需工具:burpsuite(需自行下载) 老规矩看完题,先获取在线场景,得到如下网页 那么什么是cookie呢?大体上就是网站为了识别用户身份而储存在用户本地终端上的数据,类型 ...
- 攻防世界Web新手练习区(1-6)
第一题 view_source 获取在线场景查看网页 打开页面之后首先考虑查看源代码,发现不能右击 根据题目的提示考虑使用view-source查看源代码,发现flag 第二题 get_post 获取 ...
- 攻防世界web新手区
攻防世界web新手区 第一题view_source 第二题get_post 第三题robots 第四题Backup 第五题cookie 第六题disabled_button 第七题simple_js ...
- 攻防世界 Misc 新手练习区 stegano CONFidence-DS-CTF-Teaser Writeup
攻防世界 Misc 新手练习区 stegano CONFidence-DS-CTF-Teaser Writeup 题目介绍 题目考点 隐写术 摩斯密码 Writeup 下载附件是PDF文件打开,研究一 ...
- 攻防世界 Misc 新手练习区 ext3 bugku Writeup
攻防世界 Misc 新手练习区 ext3 bugku Writeup 题目介绍 题目考点 WinHex工具的使用 linux磁盘挂载mount命令 Writeup 下载附件拖进winhex分析一下,查 ...
- 攻防世界 Misc 新手练习区 gif Writeup
攻防世界 Misc 新手练习区 gif Writeup 题目介绍 题目考点 仔细联想 字符转换 Writeup 下载附件并打开 104张黑白图 发现是一堆黑色和白色的图片,按某种规律排列,猜想flag ...
随机推荐
- git 操作详情
Git 教程 1.Git 是一个开源的分布式版本控制系统 2.Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开源版本控制软件 3.Git 与常用的版本控制工具 ...
- jsp include参数传送接收与应用
先看一个简单的应用,在a.jsp中写如下代码 <html> <head></head> <body> <div> <jsp:inclu ...
- 【Android多线程】异步信息处理机制
https://www.bilibili.com/video/av65170691?p=3 (本文为此视频听课笔记) 一.线程和线程之间为什么要进行通讯 各线程之间要传递数据 二.线程和线程之间如何通 ...
- 操作系统OS - fork bomb(Windows)
1. Type %0|%0 2. Save the file to your desktop as anything.bat
- 神奇的 SQL 之 联表细节 → MySQL JOIN 的执行过程
问题背景 对于 MySQL 的 JOIN,不知道大家有没有去想过他的执行流程,亦或有没有怀疑过自己的理解(自信满满的自我认为!):如果大家不知道怎么检验,可以试着回答如下的问题 驱动表的选择 MySQ ...
- lower_bound() 函数使用详解
简介 lower_bound()函数是用来求一个容器中,第一个大于等于所要查找的元素的地址,具体的原理是二分查找,因此它只能用于非降序序列. 他有三个参数,第一个参数是容器的初始地址,第二个参数是容器 ...
- if,while,for循环
目录 if条件 while循环 for循环 拓展知识点 if条件 if 条件: code elif 条件: code else: code # 三元运算符 x = 10 y = 20 print(y ...
- null值可以赋给引用变量,不能给基本类型
下面正确的写法是? cbyte i=128 boolean i=null long i=0xfffL double i=0.9239d null表示没有地址:null可以赋值给引用变量,不能将null ...
- day8 文件的读取
只读 只写 追加 读写 功能 username = input('请输入你要注册的用户名:') password = input('请输入你要注册的密码:') with open('list_of_i ...
- Linux (Ubuntu) 服务器安装MySQL,设置不限ip,root远程密码访问
1.注释bind-address = 127.0.0.1 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 将bind-address = 127.0.0.1 ...