弱认证: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)的更多相关文章

  1. 攻防世界——web新手练习区解题记录<1>(1-4题)

    web新手练习区一至四题 第一题view_source: 题目说右键不管用了,我们先获取在线场景来看一看,我们看到这样一个网页,并且右键确实点了没什么反应,而用到右键一般就是查看网页源码 用快捷键(F ...

  2. 攻防世界--web新手练习区(1)

      1. 题目描述:X老师想让小明同学查看一个网页的源代码,但小明却发现鼠标右键不管用了.  http://111.198.29.45:53629 通过阅读题目描述分析,我们需要查看源码,但是鼠标右键 ...

  3. 攻防世界——web新手练习区解题总结<3>(9-12题)

    第九题simple_php: 看题目说是php代码,那必定要用到php的知识,让我们先获取在线场景,得到如下网页 仔细看这个代码,意思大概是: 1.当a==0且a为真时输出flag1 2.当b为数字退 ...

  4. 攻防世界——web新手练习区解题总结<2>(5-8题)

    第五题cookie: 所需工具:burpsuite(需自行下载) 老规矩看完题,先获取在线场景,得到如下网页 那么什么是cookie呢?大体上就是网站为了识别用户身份而储存在用户本地终端上的数据,类型 ...

  5. 攻防世界Web新手练习区(1-6)

    第一题 view_source 获取在线场景查看网页 打开页面之后首先考虑查看源代码,发现不能右击 根据题目的提示考虑使用view-source查看源代码,发现flag 第二题 get_post 获取 ...

  6. 攻防世界web新手区

    攻防世界web新手区 第一题view_source 第二题get_post 第三题robots 第四题Backup 第五题cookie 第六题disabled_button 第七题simple_js ...

  7. 攻防世界 Misc 新手练习区 stegano CONFidence-DS-CTF-Teaser Writeup

    攻防世界 Misc 新手练习区 stegano CONFidence-DS-CTF-Teaser Writeup 题目介绍 题目考点 隐写术 摩斯密码 Writeup 下载附件是PDF文件打开,研究一 ...

  8. 攻防世界 Misc 新手练习区 ext3 bugku Writeup

    攻防世界 Misc 新手练习区 ext3 bugku Writeup 题目介绍 题目考点 WinHex工具的使用 linux磁盘挂载mount命令 Writeup 下载附件拖进winhex分析一下,查 ...

  9. 攻防世界 Misc 新手练习区 gif Writeup

    攻防世界 Misc 新手练习区 gif Writeup 题目介绍 题目考点 仔细联想 字符转换 Writeup 下载附件并打开 104张黑白图 发现是一堆黑色和白色的图片,按某种规律排列,猜想flag ...

随机推荐

  1. nm

    nm是names的缩写,功能是列出目标文件的符号清单,常用来查看动态链接库中的函数. nm选项 -a   按照man手册,仅列出调试信息,实际上却是调试信息+正常信息 -A   增加一列显示目标文件, ...

  2. sqlserver数据将多个表或视图的数据合并到一个表或视图里的sql语句

    create view dbo.V_ZDUser_DDasselect * from dbo.V_ZDUser_DD1 union all select * from dbo.V_ZDUser_DD2 ...

  3. spring boot 配置时区差别

    前提 数据库时区:GMT+8 show variables like '%time_zone%'; 本机电脑时区: 情景一.不指定时区 传递的参数映射到Data不指定时区,连接数据库不指定时区,保存时 ...

  4. C++中的内联函数

    (1)定义.函数声明和定义时,在返回值类型前加inline关键字. (2)作用.避免调用时的额外开销. (3)使用情况.函数体很小,且频繁调用. (4)本质.通过牺牲代码段空间,来提高程序运行的时间效 ...

  5. 《JavaScript高级程序设计》读书笔记(序)

    1.现大三暑假中,计划9月初北上找前端工作,大三一年时间都在健身和学习专业课知识,技术有点荒废了,7月份忙于学校安排的实习javaweb方向的,到现在才有整段的时间好好把基础巩固一. 2.这几天也在关 ...

  6. 解Bug之路-记一次调用外网服务概率性失败问题的排查

    前言 和外部联调一直是令人困扰的问题,尤其是一些基础环境配置导致的问题.笔者在一次偶然情况下解决了一个调用外网服务概率性失败的问题.在此将排查过程发出来,希望读者遇到此问题的时候,能够知道如何入手. ...

  7. java.io.IOException: java.io.FileNotFoundException: /tmp/tomcat.2457258178644046891.8080/work/Tomcat/localhost/innovate-admin/C:/up/154884318438733213952/sys-error.log (没有那个文件或目录)

    环境: Ubuntu18 vue+elementUI 实现文件的上传 报错信息: MultipartFile.transferTo(dest) 报 FileNotFoundException java ...

  8. Struts2.0笔记二

    Mvc与servlet 1.1   Servlet的优点 1.  是mvc的基础,其他的框架比如struts1,struts2,webwork都是从servlet基础上发展过来的.所以掌握servle ...

  9. Spring学习(五)

    自动装备 1.定义 自动装配(autowiring): 将某个Bean实例中所引用的其它的Bean自动注入到当前Bean实例中 自动装配就是指由Spring来自动地注入依赖对象,无需人工参与. 自动装 ...

  10. Java基础 -5.3

    方法的递归调用 指的是一个方法自己调用自己的情况,利用递归调用可以解决一些重复且麻烦的问题 在进行我们递归调用的时候一般要考虑如下几点问题 一定要设置方法递归调用的结束条件 每一次调用的过程之中一定要 ...