系统安全实践作业2

目录

第四周实验题目1——前端绕过

题目描述:

解题过程:

第四周实验题目2——php代码审计

题目描述:

解题过程:


第四周实验题目1——前端绕过

题目描述:

        只需要把10位的密码输到长度限制为9位的输入框内,然后就可以得到flag!

解题过程:

        1、依旧是请求虚拟环境,看好靶机IP,然后通过浏览器访问靶机。

        2、发现输入框只能输入9位数字,这就是提示里面说的把10位输入时就可以获得flag。

        查看网页源代码:发现这个长度就是限定9位了。

         3、求助百度,搜索 ctf前端输入长度限定,看到一个有借鉴意义的writeup:

Bugku CTF-web2 前端输入长度限制

         方法:尝试修改网页代码

        4、打开控制台

        点击箭头指示的这里,不断展开:

         最终可以看到,长度设置是可以修改的:直接双击9”这个位置,把它改为“10”。然后直接在网页上输入“1234567890”运行,即可得到flag。

第四周实验题目2——php代码审计

题目描述:

        是真的会sleep这么久,所以不考虑考虑其他输入时间的姿势嘛?强制转换和is_numeric()相比有哪些不足呢?

解题过程:

        1、访问靶机IP

        初略的读一下这段代码,就是让我们提交一个time值,然后这个值是有范围限制的,读取之后休眠这么多时间。

        我们先构造一个url试着访问一下:1.4.202.3/?time=1

        好的,这回懂了,time的范围是 5184000~7776000。但是我们总不能真的等这么多秒。

        2、根据提示,百度一下:强制转换和is_numeric(),看了这个解析:

Challenge 2:php弱类型、is_numeric()、强制类型转换

        当我们以科学计数法输入数字时,通过int的转换会丢失后面的数字,那我们试一下这个:1.4.202.3/?time=6e6

        这回似乎可以看到sleep结束,但是还是没有flag。别急,继续往下看代码:

        isset()函数检测变量是否设置,是则返回true,否则返回false。

        include函数包含并运行指定文件。

        3、那就是还有另一步,在输入time之后,我们还需要构造file值,我的猜测是给出flag所在的路径。期间尝试了:

                1.4.202.3/?time=6e6&file=flag

                1.4.202.3/?time=6e6&file=flag.txt

                1.4.202.3/?time=6e6&file=flag.php

                1.4.202.3/?time=6e6&file=../flag

                1.4.202.3/?time=6e6&file=./flag

        以此类推,但是都没得到结果。

        还百度了有什么网页目录扫描工具,想试着扫一下,但好歹把dirsearch给git下来了,那些库又装不上,无奈之下问了助教。

        好吧,原来是靠猜的,正确的路径就在根目录下/flag是:

                1.4.202.3/?time=6e6&file=/flag

        最后就拿到flag了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值