IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 攻防世界(Web) -> 正文阅读

[PHP知识库]攻防世界(Web)

博客新地址:c7ay.top

view_source

F12就能看到flag签到题,url前加view_source也可以

在这里插入图片描述

robots

查看robots.txt,disallow提示有php文件,访问得flag

在这里插入图片描述

在这里插入图片描述

backup

题目很明显考察备份文件

在这里插入图片描述
php的备份文件格式有两种 .php~和.php.bak
url后加上index.php.bak下载备份文件

在这里插入图片描述
将后缀名改为php,得到flag

在这里插入图片描述

cookie

打开环境页面提示,你知道什么是cookie吗?那我们就看下cookie

在这里插入图片描述
看下这个cookie.php,打开页面提示See the http response

在这里插入图片描述
F12看响应头得到flag

disabled_button

不能按的按钮,f12定位下按钮,将disabled删除点击按钮得到flag

在这里插入图片描述

weak_auth

打开是一个登录页面

在这里插入图片描述
看了下网页源码

在这里插入图片描述
action./check.php,访问了一下check.php看了下源码

在这里插入图片描述
提示可能需要一个字典,考查爆破也没有验证码,随手试了一下弱密码admin 123456居然对了…运气好哈哈哈哈哈哈

在这里插入图片描述

simple_php

一段php代码

<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
    echo $flag1;
}
if(is_numeric($b)){
    exit();
}
if($b>1234){
    echo $flag2;
}
?>

get方法获取ab变量,如果a==o and a输出flag1 b如果是数字退出,b>1234输出flag2
PHP的弱类型比较,url中加上参数?a=c&b=1235a就得到flag了

在这里插入图片描述
因为字符串的开头都是0所以a=0并且字符串c存在所以两遍都为true输出falg1 b=1235a b>1234并且不为数字输出flag2

get_post

考察post提交方法,url中后?a=1

在这里插入图片描述
post方式提交b=2得到flag

在这里插入图片描述

xff_referer

打开页面说ip地址必须为123.123.123.123
用x-forwarded-for-header插件添加IP地址

在这里插入图片描述
添加后刷新提示必须来自https://www.google.com,那就修改Referer头抓包

在这里插入图片描述
没有Referer头我们添加

在这里插入图片描述
Forward下看到flag

webshell

页面显示
你会使用webshell吗?

<?php @eval($_POST['shell']);?>

题目提示中显示一句话木马放在index.php中,蚁剑连一下

在这里插入图片描述
进来就可以看到flag.txt了

在这里插入图片描述

command_execution

ping一下本地 它是ping3次

在这里插入图片描述
我们直接find命令

在这里插入图片描述
flag.txt在home下 cat /home/flag.txt 得到flag

在这里插入图片描述

simple_js

打开页面弹窗让输入密码,看一下页面源码

<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>

进行代码审计吧,必要的注释都写在代码里了

<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(',');//tab数组
                var tab2 = pass.split(',');var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length;//j=11
                        k = j + (l) + (n=0);//j=11,l=0,n=0 k=11
                        n = tab2.length;//n=18
                        /*
                        for(i=0;i<18;i++)
                        第一次循环
                        {o=tab[0];p+=String.fromCharCode((o=tab2[0]))
                            if(i == 5)break;}
                        #前面的tab赋值并没用会被后面的赋值覆盖 第一次执行输出F for执行五次跳出
                        */
                        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=0;i<18;i++){
                            o=tab[i-l]
                            if(i > 5 && i < k-1)
                                        p += String.fromCharCode((o = tab2[i]));
                        }
                        和上面的for循环执行完就是 FAUX PASSWORD HAH
                        */
                        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;
        /*p+=String.fromCharCode(65)
        p=FAUX PASSWORD HAH + A
        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>

最后发现了其实我们输入什么都会密码错误,我们输入的tab在函数中都会被tab2替代了,在代码中发现这一段并没有执行出来的

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"));

写个python处理下

s = '\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'
print(s)
n = [55,56,54,79,115,69,114,116,107,49,50]
flag = ""
for i in n:
    b = chr(i)
    flag += b
print(flag)

在这里插入图片描述

人生漫漫其修远兮,网安无止境。
一同前行,加油!

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-07-30 12:32:03  更:2021-07-30 12:33:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 12:14:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码