CG-CTF

https://cgctf.nuptsast.com/challenges#Web

  续上~

  第二十二题:SQL注入1

  点击Source:

  分析:

  mysql_select_db()函数:设置MySQL数据库;

  trim()函数:移除两侧的预定义字符;

  mysql_query()函数:执行一条MySQL查询;

  mysql_fetch_array函数:从结果集取得一行作为关联数组;

  执行的sql语句:

select user from ctf where (user='".$user."') and (pw='".$pass."')

  整段代码唯一一个过滤机制是trim()函数,对两端的空格等预定义字符进行了过滤,且只校验了user == admin即可获取flag,那么直接在user参数里构造,注释掉后面的pass即可;

  构造admin“)#,注意闭合语句即可;

  取得flag(干杯~);

  第二十三题:pass check

  代码分析:

  这里用到了isset()函数检测变量是否被赋值,用strcmp()函数比较$pass和$pass1两个变量;

  但是strcmp()函数在被比较的两个参数相等的情况下返回0,而在PHP5.3版本之前存在一个漏洞,就是如果参数的数据类型是strcmp()函数无法识别的也会返回0,所以在这里我们让pass变为数组即可获得flag,由于题目地址出错就不做验证了;

  第二十四题:起名字真难

  代码分析:

  设定了一个函数function noother_says_correct($number):

  ord()函数:返回ASCII码;

  然后设置了一个for循环,将$number的每一位进行判定,若其ASCII码在49(1的ASCII码)和57(9的ASCII码)之间,则返回false,若不在这两者之间,将$number与字符串'54975581388'进行比较并返回比较结果;

  然后将?key的值放入函数,若返回true,则取得flag;

  思路:也就是说?key的值必须和'54975581388'相同,又不能在1-9之间;尝试使用不同的进制数,二进制必有1,所以肯定不行,八进制除了0也都在1-9之间,看看'54975581388'的十六进制是啥:0xccccccccc!完美避开了1-9;

  取得flag(干杯~);

  第二十五题:密码重置

  先尝试随便输个新密码和验证码看看;

  返回error;

  用burp抓包;

  观察的时候发现有个user1的参数,形似base64加密后的样子,尝试解码;

  结合题干(重置管理员账号admin的密码),对admin进行base64加密并修改参数;

  取得flag(干杯~);

  第二十七题:SQL Injection

  查看源代码:

  代码分析:

  用htmlentities()函数将字符转换为html转义字符,并将双引号、单引号都进行转换;

  mysql_query()函数执行MySQL查询,此处查询语句为:

SELECT*FROM user WHERE name = '$username' AND pass = '$password'

  思路:在用了转义函数之后,我们不能用单引号进行简单的闭合,题干中有个TIP,反斜杠可以用来转义,而在MySQL查询语句中,转义的单引号不会参与语句的闭合,那么如果我们用反斜线将name参数原本用来闭合的单引号转义掉,那么pass参数的第一个单引号就会成为name参数的闭合单引号,而我们就可以在pass参数上执行语句了;

  构造name=\&pass=or 1=1#(当然放在URL中时我们需要用URL编码);

  取得flag(干杯~);

  第二十八题:综合题

  可以看出应该是一段JS代码,放到控制台运行一下;

  得到一个PHP文件名,尝试访问;

  TIP在脑袋里,应该会有信息在HTTP头部,查看burp;

  提示history of bash,而Linux系统的.bash_history文件里是系统输入的命令记录,尝试访问.bash_history文件;

  命令历史显示用了zip压缩命令,压缩后的文件名为flagbak.zip,尝试访问;

  提示下载,下载解压后里面是flag.txt文件,打开;

  取得flag(干杯~);

  第三十题:SQL注入2

  查看Source;

  代码分析:

  if判断处对$pass和$query[pw]的值进行了比较,需要二者相等;而$pass的值是我们输入的密码的md5的值,$query[pw]的值按理来说是我们输入的user的值在ctf表中对应的pw列的值;

  思路:运用union,当前者查询不存在的时候会返回后者的值,那么我们只用构造一个取得和我们输入的密码的MD5值相等的值即可成功;

  尝试构造user=’union select md5(111)#,pass=111

  取得flag(干杯~);

  未完待续~

CG-CTF(5)的更多相关文章

  1. Cg profiles,如何使用CGC编译Cg语言(转)

    抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人” 计算机只能理解和执行由0.1序列(电压序列 ...

  2. [DEFCON全球黑客大会] CTF(Capture The Flag)

    copy : https://baike.baidu.com/item/ctf/9548546?fr=aladdin CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的 ...

  3. 解读Unity中的CG编写Shader系列八(镜面反射)

    转自http://www.itnose.net/detail/6117378.html 讨论完漫反射之后,接下来肯定就是镜面反射了 在开始镜面反射shader的coding之前,要扩充一下前面提到的知 ...

  4. 【Unity Shaders】学习笔记——SurfaceShader(二)两个结构体和CG类型

    [Unity Shaders]学习笔记——SurfaceShader(二)两个结构体和CG类型 转载请注明出处:http://www.cnblogs.com/-867259206/p/5596698. ...

  5. CG&Game资源(转)

    cg教程下载: http://cgpeers.com http://cgpersia.com http://bbs.ideasr.com/forum-328-1.html http://bbs.ide ...

  6. (笔记)CTF入门指南

    [考项分类] Web: 网页安全 Crypto: 密码学(凯撒密码等) PWN: 对程序逻辑分析 系统漏洞利用 Misc: 杂项 图片隐写 数据还原 脑洞类 信息安全有关的 Reverse: 逆向工程 ...

  7. 小白的CTF学习之路2——二进制数据基础与运算(上)

    今天的第二更,被我拖到了傍晚,嘿嘿,二进制这方面让本就数学不好的我很头疼,所以研究了一段时间 在学习之前我们先了解几个问题: 32位是几个字节? 01011100对于十进制是多少? 00001111向 ...

  8. CTF竞赛(简介)

    一.解体模式(Jeopardy) 可通过互联网或现场网络参与,解决网络安全技术挑战题目,并以分值和时间排名. 题目主要包括:逆向,漏洞挖掘与利用,web渗透,密码,取证,隐写,安全编程 二.攻防模式( ...

  9. (译)Cg Programming/Unity(Cg编程/Unity)

    最近在学习Unity3d中的shader编程,能找到的中文资料比较少,于是,尝试翻译一下wiki Books上的资料,以方便其他跟我一样的入门学习者.由于是第一次翻译技术资料,经验不足,难免出错,请路 ...

  10. Cg(C for Graphic)语言语义绑定方法(转)

    摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人” 语义绑定方法 入口函数输入\ 输出数据的 ...

随机推荐

  1. WEB缓存系统之varnish状态引擎

    前文我们聊了下varnish的VCL配置以及语法特点,怎样去编译加载varnish的vcl配置,以及命令行管理工具varnishadm怎么去连接varnish管理接口进行管理varnish,回顾请参考 ...

  2. 基于 HTML5 WebGL 的楼宇智能化集成系统(一)

    前言       随着现代通信技术.计算机技术.控制技术的飞速发展,智能建筑已经成为现代建筑发展的主流.智能建筑是以建筑物为平台,兼备信息设施系统.信息化应用系统.建筑设备管理系统.公共安全系统等.集 ...

  3. 封装属于自己的Python包

    将自己的程序打包为whl/tar.gz文件 有时候自己写了一个开发基本类,我们把这个类打包为whl或者tar.gz文件,这样的话同事也可以使用自己开发的基本类了 安装setuptools pip in ...

  4. P1343 地震逃生(最大流板题)

    P1343 地震逃生 题目描述 汶川地震发生时,四川**中学正在上课,一看地震发生,老师们立刻带领x名学生逃跑,整个学校可以抽象地看成一个有向图,图中有n个点,m条边.1号点为教室,n号点为安全地带, ...

  5. 2783: 【基础】小 X 玩游戏(game)

    2783: [基础]小 X 玩游戏(game) 时间限制: 1 Sec 内存限制: 64 MB 提交: 752 解决: 294 [提交] [状态] [讨论版] [命题人:ghost79] 题目描述 听 ...

  6. Mac 开发工具信息的备份

    相信大部分程序员都对开发环境的工具都有一些特殊的执念(???),如果在自己不习惯的环境中工作完全无法开展,怎么这个工具没有那个字体难受,我本人就是,换了新的 Mac 电脑后如何快速恢复到之前的开发工具 ...

  7. c语言 0与非0

    ------------恢复内容开始------------ 结论: 其它的编程语言中有布尔数据类型,并用百来表示逻辑真和逻辑假,C语言没有这个内置类度型,在C语言中真和假是用整型值来表示知的,0就表 ...

  8. Java多线程并发工具类-信号量Semaphore对象讲解

    Java多线程并发工具类-Semaphore对象讲解 通过前面的学习,我们已经知道了Java多线程并发场景中使用比较多的两个工具类:做加法的CycliBarrier对象以及做减法的CountDownL ...

  9. thinkphp后端开发ajax接口开发测试(2)

    非常好用的Postman,Google chrome上必备测试ajax接口插件:

  10. 《mysql 必知必会》 速查指南

    目录 增 添加一整行 插入多行 删 删除指定行 删除所有行 改 查 简单检索 结果筛选 结果排序 结果过滤 创建字段 处理函数 数据分组 其他高级用法 文章内容均出自 <MySQL 必知必会&g ...