nss刷题(4)

1、[SWPUCTF 2021 新生赛]easyrce

php 复制代码
 <?php
error_reporting(0);
highlight_file(__FILE__);
if(isset($_GET['url']))
{
eval($_GET['url']);
}
?> 

if(isset(_GET\['url'\])) isset函数用来检测url变量是否存在;_GET函数获取变量数据

eval($_GET['url']); eval函数用来执行参数数据,并返回结果,其中字符串当作PHP代码来执行。

利用eval函数进行命令执行尝试

/?url=system('ls /');

得到了根目录内容

看到一个与flag有关的文件,用cat命令查看。

得到flag

.system函数

该函数会将执行的结果输出并将输出结果的最后一行作为字符串返回,如果执行失败则返回fale。这个函数也是经常被使用到的。

php 复制代码
<?php
highlight_file(__FILE__);
system('pwd');
?>

2.1.2.exec函数

该函数不会输出结果,但是会返回执行结果的最后一行,可以结合output进行结果的输出。

php 复制代码
<?php
highlight_file(__FILE__);
exec('pwd',$b);
var_dump($b);
?>

2.1.3.passthru函数

该函数只调用命令,并将运行的结果原封不动的输出,没有相应的返回值。

php 复制代码
<?php
highlight_file(__FILE__);
passthru('ls');
?>

 

2.1.4.shell_exec函数

该函数不会输出结果,返回执行结果 使用反引号(``)时调用的就是此函数。

php 复制代码
<?php
highlight_file(__FILE__);
var_dump(shell_exec('ls'));
?>

2、[SWPUCTF 2021 新生赛]babyrce

php 复制代码
 <?php
error_reporting(0);
header("Content-Type:text/html;charset=utf-8");
highlight_file(__FILE__);
if($_COOKIE['admin']==1) 
{
    include "../next.php";
}
else
    echo "小饼干最好吃啦!";
?> 小饼干最好吃啦!

用if语句判断cookie的值是否等于 admin=1,如果相等则输出包含的文件../next.php,尝试cookie注入。

得到了一个php文件,打开看看,是一段新的代码。

php 复制代码
 <?php
error_reporting(0);
highlight_file(__FILE__);
error_reporting(0);
if (isset($_GET['url'])) {
  $ip=$_GET['url'];
  if(preg_match("/ /", $ip)){
      die('nonono');
  }
  $a = shell_exec($ip);
  echo $a;
}
?> 

正则匹配"/ /",因此要得到flag需要绕过空格

空格绕过:

> < <> 重定向符

%20(space)

%09(tab)

IFS9

${IFS}(最好用这个)

$IFS

%0a 换行符

{cat,flag.txt} 在大括号中逗号可起分隔作用

所以用${IFS}绕过空格,查看根目录内容。

发现有一个flllllaaaaaaggggggg,flag应该就在里面,用cat命令查看。

得到flag

3、[羊城杯 2020]easycon

打开页面后没有提示和信息,尝试查看源码

看到了一个地址,尝试查看,发现了一个index.php,打开后发现又回到了刚才的页面。

换一个思路,尝试目录扫描,

扫描出了两个文件,尝试打开看一下。

打开后得到一个弹窗页面,eval post cmd想到一句话木马或者命令执行。

尝试蚁剑链接,发现数据为空应该不是一句话木马。

尝试命令执行,通过post传入参数

尝试打开txt文件查看内容,命令执行cat

查看到一串字符串,猜测可能需要转成jpg格式

是一个base64转图片,得到flag。

相关推荐
用户47949283569156 分钟前
并发编程里的"堵车"与"红绿灯":死锁、活锁与两种锁策略(乐观锁、悲观锁)
前端·后端
一 乐8 分钟前
智慧医药|基于springboot + vue智慧医药系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端
ytttr87311 分钟前
基于 C# WinForm 实现的 电影院售票系统
开发语言·c#
CC码码24 分钟前
告别杂乱数字:用 Intl.NumberFormat 打造全球友好的前端体验
前端·javascript·面试
Tony Bai26 分钟前
Goroutine “气泡”宇宙——Go 并发模型的新维度
开发语言·后端·golang
kandee33 分钟前
vscode混淆js文件的插件用法(jshaman)
javascript·ide·vscode
妮妮喔妮34 分钟前
Webpack和Vite优化的区别
前端·webpack·node.js
Larry_Yanan36 分钟前
Qt多进程(二)QProcess+stdio
开发语言·qt
码农葫芦侠38 分钟前
Qt 跨线程内存管理陷阱:QSharedPointer、deleteLater() 与 QPointer 的致命组合
开发语言·数据库·qt
d111111111d41 分钟前
C语言中,malloc和free是什么,在STM32中使用限制是什么,该如何使用?
c语言·开发语言·笔记·stm32·单片机·嵌入式硬件·学习