Skip to content

Instantly share code, notes, and snippets.

@phith0n
Last active October 5, 2019 14:07
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save phith0n/782a73b0ad8d0b8cbeb26685c8dd0be8 to your computer and use it in GitHub Desktop.
Save phith0n/782a73b0ad8d0b8cbeb26685c8dd0be8 to your computer and use it in GitHub Desktop.
梧桐百科投稿指南

梧桐百科投稿指南

梧桐百科是一个碎片化安全知识学习平台,我们将细小的知识点(tricks)写入卡片,以卡片的形式让学习者对知识的认识程度更加深刻。

我们接受用户投稿,大家可以把自己觉得优秀的碎片化知识发送给我们,投稿地址:https://tricking.io/card/contribute/

投稿步骤

投稿前,请先搜索,可能你的知识点已经被梧桐百科收录。

另外,要区分“碎片化知识”和“博客文章”的区别。我们只接受细小的知识点投稿,如果是一个漏洞、一个渗透测试案例等完整的文章,请将其中的知识点拆分出来投稿。如:“PHP某某函数在某某情况下可以导致某某漏洞”,这一类属于知识点;“我通过某某函数编写缺陷获取了某某网站的webshell”,这属于完整的渗透测试文章。

你需要填写的内容包括4部分:

  1. 标题
  2. 描述
  3. 详情
  4. 代码

其中,标题、描述都不支持Markdown语法,只有详情支持Markdown语法,代码部分支持任意程序语言。

标题

可以是比较吸引人的句子,不要过长,最好能够囊括该trick所涉及的函数、作用、影响等,如preg_replace 利用 \0 截断执行代码

描述

用一段简单的文字完整描述这个trick。

我们描述要达到的目的是:大佬无需查看详情,就能通过阅读描述知道这个知识点的内容和复现方法。所以,请把所有重要信息在描述里说清楚,切记,描述并不是一段含糊不清只是引导性的文字

例如:

有些情况下,我们可控preg_replace的第一个参数(正则表达式)中的部分内容。

在PHP5.4.7以前,preg_replace的第一个参数可以利用\0进行截断,并将正则模式修改为e。众所周知,e模式的正则支持执行代码,此时将可构造一个任意代码执行漏洞。

详情

详情部分的受众是所有用户。比如,某人阅读描述部分,无法准确获知这个trick,就需要阅读详情。详情部分是一段支持Markdown的文章,长度不限。

Markdown语法请阅读:https://guides.github.com/features/mastering-markdown/

梧桐百科的详情有如下特点:

  1. 下划线不用转义
  2. 自动识别链接
  3. 粘贴上传图片

因为前台投稿页面没有Markdown编辑器,也没有自动保存功能。所以建议投稿者在本地Markdown编辑器中写好内容,然后再投稿。

代码

代码的目的是:给出一段代码(或伪代码),因为这段代码中的错误,即可导致这个trick。

例如:

<?php
$tag = $_GET['tag'];
$pattern = "|<{$tag}>(.*?)</{$tag}>|i";
$data = preg_replace($pattern, '\1', $_GET['html']);
echo $data;

代码段比较随意,无需非常严格而能运行。只是一个最简单地能够复现该trick的环境。

当然,某些trick无法用一段简单的代码复现,所以也可以留空。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment