CG-CTF(4)
CG-CTF
https://cgctf.nuptsast.com/challenges#Web
续上~
第十六题:bypass again
代码分析:
当a不等于b,且a和b的md5值相同时,才会返回flag值。
思路①:同第二题的思路,因为是==比较,只判断值是否相等,不判断类型是否相同。在PHP语言中,如果数据类型不同先转换为相同的类型再进行比较,而PHP在处理哈希字符串时,会把0E(或0e)开头的哈希值解释为0。所以如果两个值通过md5后值都以0E(或0e)开头,其值就会相等;
构造a=s878926199a,b=s155964671a;
取得flag(干杯~);
思路②:同第十五题思路,PHP中md5()函数并不能处理数组数据类型,在遇到数组的时候会返回NULL,其值就会相等。(且这种方法在===比较中也可以适用;
取得flag(干杯~);
思路③:MD5本质上是使用哈希算法的一种散列函数,一个MD5理论上是可能对应多个原文的,原理是MD5是有限多个的,而原文是无限多个的;
此处举个不准确但可以辅助理解的例子:
1+7=8,但是只拿到8并不能推出1+7,但是我们可以构造2+6,2*4等使其最终的值相等。
那么我们只要找到两个MD5值相同的原文(MD5散列碰撞),这道题就能解决了。
第十七题:变量覆盖
变量覆盖学习:
本题查看source.php;
只需要使$pass和$password_123的值相同即可,用burp抓包添加password_123参数;
取得flag(干杯~);
第十八题:PHP是世界上最好的语言
题目消失,去网上找到原题:
代码分析:id的值与hackerDJ不同,而URL解码后的id与hackerDJ相同;
思路:对hackerDJ进行两次URL加密即可;
第十九题:伪装者
分析:源代码啥也没有,只能在本地登录,说明对IP做了限制,那么尝试在HTTP头部中进行修改头部信息以达到伪装成本地登录;
思路①:增加X-Forwarded-For请求头部,其格式为:X-Forwarded-For: client, proxy1, proxy2;
然而好像没有达成目的,可能后端验证的不是这个头部;
思路②:client-ip;
取得flag(干杯~);
第二十题:Header
题目消失,上网找了一下原题;
咳咳,评价刁钻;
第二十一题:上传绕过
点击Submit;
提示仅支持上传jpg,gif,png后缀的文件;
尝试上传test.jpg文件;
提示必须上传成后缀名为php的文件;
上传php文件;
用burp拦包;
思路:如果我们上传php文件,第一步就会报错,那么我们需要判断它是如何识别后缀的,可以从返回的包中看到,是根据./uploads目录下的basename来进行识别的,可以尝试进行截断;
首先在/uploads/后面增加1.php;
发现basename处变为1.phptest.jpg;尝试用00截断,在1.php后面增加一个空格,然后在Hex下将20改为00;
取得flag(干杯~);
未完待续~
CG-CTF(4)的更多相关文章
- Cg profiles,如何使用CGC编译Cg语言(转)
抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人” 计算机只能理解和执行由0.1序列(电压序列 ...
- [DEFCON全球黑客大会] CTF(Capture The Flag)
copy : https://baike.baidu.com/item/ctf/9548546?fr=aladdin CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的 ...
- 解读Unity中的CG编写Shader系列八(镜面反射)
转自http://www.itnose.net/detail/6117378.html 讨论完漫反射之后,接下来肯定就是镜面反射了 在开始镜面反射shader的coding之前,要扩充一下前面提到的知 ...
- 【Unity Shaders】学习笔记——SurfaceShader(二)两个结构体和CG类型
[Unity Shaders]学习笔记——SurfaceShader(二)两个结构体和CG类型 转载请注明出处:http://www.cnblogs.com/-867259206/p/5596698. ...
- CG&Game资源(转)
cg教程下载: http://cgpeers.com http://cgpersia.com http://bbs.ideasr.com/forum-328-1.html http://bbs.ide ...
- (笔记)CTF入门指南
[考项分类] Web: 网页安全 Crypto: 密码学(凯撒密码等) PWN: 对程序逻辑分析 系统漏洞利用 Misc: 杂项 图片隐写 数据还原 脑洞类 信息安全有关的 Reverse: 逆向工程 ...
- 小白的CTF学习之路2——二进制数据基础与运算(上)
今天的第二更,被我拖到了傍晚,嘿嘿,二进制这方面让本就数学不好的我很头疼,所以研究了一段时间 在学习之前我们先了解几个问题: 32位是几个字节? 01011100对于十进制是多少? 00001111向 ...
- CTF竞赛(简介)
一.解体模式(Jeopardy) 可通过互联网或现场网络参与,解决网络安全技术挑战题目,并以分值和时间排名. 题目主要包括:逆向,漏洞挖掘与利用,web渗透,密码,取证,隐写,安全编程 二.攻防模式( ...
- (译)Cg Programming/Unity(Cg编程/Unity)
最近在学习Unity3d中的shader编程,能找到的中文资料比较少,于是,尝试翻译一下wiki Books上的资料,以方便其他跟我一样的入门学习者.由于是第一次翻译技术资料,经验不足,难免出错,请路 ...
- Cg(C for Graphic)语言语义绑定方法(转)
摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人” 语义绑定方法 入口函数输入\ 输出数据的 ...
随机推荐
- Vertica的这些事(三)——Vertica中实现Oracle中的ws_concat功能
vertica中没有类似Oracle中的ws_concat函数功能,需要开发UDF,自己对C++不熟悉,所有只有想其他方法解决了. 上代码: SELECT node_state, MAX(DECODE ...
- 新建jsp文件,The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path错误解决方法
新建一个jsp文件后,有一个错误,The superclass "javax.servlet.http.HttpServlet" was not found on the Java ...
- override 重写
//override:子类继承父类,子类重写父类的方法 public class override { public static void main(String[] args) { horse h ...
- 在非主线程里面使用NSTimer创建和取消定时任务
为什么要在非主线程创建NSTimer 将 timer 添加到主线程的Runloop里面本身会增加线程负荷 如果主线程因为某些原因阻塞卡顿了,timer 定时任务触发的时间精度肯定也会受到影响 有些定时 ...
- js 实现浏览器全屏效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 搭建DHProxy服务器
集群与存储 HAProxy简介 ...
- windows的注册表有什么用?
注册表是什么 注册表是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息.早在Windows 3.0推出OLE技术的时候,注册表就已经出现.随后推出的Window ...
- IDEA使用技巧,如何在JSP中创建Servlet“小程序”
步骤 1.新建一个java类,实现Servlet接口 2.实现接口中的抽象方法: 3.在web.xml文件中配置好servlet <web-app ......> <servlet& ...
- 汇编刷题:显示ABCDEFGH 八个字母
DATA SEGMENT DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,8 MOV ...
- Redis对象——有序集合(ZSet)
有序集合类型 (Sorted Set或ZSet) 相比于集合类型多了一个排序属性 score(分值),对于有序集合 ZSet 来说,每个存储元素相当于有两个值组成的,一个是有序结合的元素值,一个是排序 ...