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。

相关推荐
明似水8 分钟前
用 Melos 解决 Flutter Monorepo 的依赖冲突:一个真实案例
前端·javascript·flutter
钮钴禄·爱因斯晨17 分钟前
Java 面向对象进阶之多态:从概念到实践的深度解析
java·开发语言·数据结构
鸽子炖汤17 分钟前
Java中==和equals的区别
java·开发语言·jvm
独立开阀者_FwtCoder18 分钟前
stagewise:让AI与代码编辑器无缝连接
前端·javascript·github
清沫19 分钟前
Cursor Rules 开发实践指南
前端·ai编程·cursor
有个傻瓜21 分钟前
PHP语言核心技术全景解析
开发语言·kubernetes·php
江城开朗的豌豆25 分钟前
JavaScript篇:对象派 vs 过程派:编程江湖的两种武功心法
前端·javascript·面试
不吃糖葫芦326 分钟前
App使用webview套壳引入h5(二)—— app内访问h5,顶部被手机顶部菜单遮挡问题,保留顶部安全距离
前端·webview
菥菥爱嘻嘻44 分钟前
JS手写代码篇---手写ajax
开发语言·javascript·ajax
江城开朗的豌豆1 小时前
JavaScript篇:字母侦探:如何快速统计字符串里谁才是'主角'?
前端·javascript·面试