CG-CTF

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

  续上~

  第三十一题:综合题2

  查看本CMS说明;

  分析:

    ①数据库表名为admin;字段名为username和userpass(这里直接告诉我们表名和字段名,猜测大概率存在SQL注入漏洞);

    ②下面列了一些文件名,如say.php、passencode.php等,用burp爬出了so.php等;

    ③在url处可以发现file可以直接读取文件;

  思路:先用file参数读取这些文件,以获取更多信息;

  分析:

    ①passencode.php文件里建立了一个加密函数,分析代码可知对输入的参数的每一个字符转成ASCII码后输出;

    ②about.php文件里暴露了后台目录:http://cms.nuptzj.cn/loginxlcteam;

    ③so.php里暴露了很多有用的信息:

  • 检查了HTTP头部的User-Agent参数,必须为Xlcteam Browser才可以通过检验,用burp修改HTTP头部即可简单绕过;
  • POST参数为'soid';此处可能存在SQL注入漏洞;
  • 包含了两个文件antiinject.php和antixss.php,先简单分析代码即可知是对SQL注入和XSS跨站脚本的一些字符做了过滤;
  • 可以看到查询数据库的命令为:
    SELECT * FROM 'message' WHERE display=1 AND id=$id

    ④分析查询命令我们可以发现如果存在SQL注入漏洞,即为数字型注入漏洞,那么来仔细分析antiinject.php里的过滤规则,通过分析代码我们可以发现它对“select”、“union”、“and”、“from”等单词进行了黑名单过滤,对“+”、“=”、“空格”等字符也进行了黑名单过滤,而采用的过滤方法是用str_repalece()函数将黑名单替换掉,那么我们可以采用双写、大小写来绕过单词过滤,采用“/**/”注释绕过空格过滤,采用“like”或“>”、“<”来绕过“=”过滤,可以判断这里存在SQL注入漏洞;

  思路:已知数据库表名为admin,字段名为username和userpass,并已知过滤规则,这里我们采用exists()函数来直接爆破字段的内容,工具使用burp自带的intruder模块,payload为:

soid=1/**/anandd/**/exists(selselectect/**/*/**/frfromom/**/admadminin/**/where/**/oorrd(substr(usernanameme,§1§,1))>§1§)

  和

soid=1/**/anandd/**/exists(selselectect/**/*/**/frfromom/**/admadminin/**/where/**/oorrd(substr(userppassass,§1§,1))>§1§)

  得到username的字段内容为admin,userpass的字段内容为102 117 99 107 114 117 110 116 117,根据之前分析的passencode.php,可知解密后应为fuckruntu;

  用获得的账号密码登录后台;

  得知了木马文件的文件名,再用之前的file参数读取木马文件的内容;

  分析代码可知,这段代码的含义为用wtf参数里的内容替换到www里去执行,直接用Cknife连接;

  打开“恭喜你获得flag2.txt”文件;

  取得flag(干杯~);

  完结撒花~

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

  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. Java线程及其实现方式

    一.线程&多线程 线程: 线程是进程的一个实体,是 CPU 调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程 自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序 ...

  2. 关于swift使用CocoaPods倒入三方库的framework后父类倒入子类无法继承的问题

    今天开发项目的时候遇到这么一个问题在使用cocoapods倒入了三方库后我在BaseController中倒入三方库,其余controller继承自basecontroller,然而在继承的子类中无法 ...

  3. Jenkins集成时报错 hudson.remoting.Channel$CallSiteStackTrace: Remote call to JNLP4-connect connection from xxx.xxx.xxx.xxx/xxx.xxx.xxx.xxx:32034

    Started by user test Running as SYSTEM Building remotely on home_windows (mbhCloud_UI_Test) in works ...

  4. 如何查看网页的header

    1.例如打开要爬取的网页:https://www.zhihu.com/explore 2.按下F12,点击Network 3.刷新页面,点击explore 4.选取request headers,us ...

  5. 新安装的eclipse配置好了环境变量后,打开还是出现A Java runtime environment错误

    新安装的eclipse配置好了环境变量后,打开还是出现如下图的A Java runtime environment错误; 解决方法: 第一步: Windows环境下:把C:\Users\你的用户名 目 ...

  6. 1057 Stack (30分)(树状数组+二分)

    Stack is one of the most fundamental data structures, which is based on the principle of Last In Fir ...

  7. 怎样让scratch里的人物两腿走动

    需要人物角色至少有两个“造型”,表现走路时的两个动作.以默认的“小猫”觉色为例,它有两个“造型”,可以用来表现奔跑的动作. 但是要想让小猫跑起来,需要脚本来实现,简单跑动脚本如下 scratch学习视 ...

  8. python爬取疫情数据详解

    首先逐步分析每行代码的意思: 这是要引入的东西: from os import path import requests from bs4 import BeautifulSoup import js ...

  9. 家庭记账本app进度之下拉框和数字转轮的相关应用

    这次主要是悬系的下拉框Spinner和数字转轮NumberPicker的使用.先分析相关的用到的知识点. 在Android中,用string-array是一种简单的提取XML资源文件数据的方法. 例子 ...

  10. Linq中带有迭代索引的Select扩展方法,为啥知道的人不多呢?

    一:背景 昨天在看C#函数式编程这本书的时候,有一处让我干着急,需求是这样: 给多行文字加上数字列表项. 针对这个需求你会如何快捷高效的给每个项目加上数字编号呢? 我看书中是这样实现的,如下代码 pu ...