- 博客(45)
- 收藏
- 关注
原创 ctfshow 原谅杯
原谅4这是提示。老前辈说过“最安全的系统就是什么都没有”,我把没用的命令都删了,看你还怎么执行你知道系统环境变量里的PATH是干什么的吗?查看phpinfo发现禁用了很多东西,根据提示,查看$PATHecho $PATH然后到各路径下查看然后查看/bin发现只有三个命令,ls rm sh所以这里我们可以执行shell脚本echo -e "%23!/bin/sh\nwhile read LINE\ndo\necho \$LINE\ndone < /flag" > readfl
2021-09-09 15:18:43
777
1
原创 ctfshow 1024杯
1024_WEB签到phpinfo中有个自定义的函数,不多说了,自己找找看把1024_柏拉图双写绕过file://,然后利用file协议读取文件,index.php<?phperror_reporting(0);function curl($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); echo cur
2021-09-03 15:29:27
731
原创 ctfshow 月饼杯
web1_此夜圆一个简单的反序列化逃逸<?phperror_reporting(0);class a{ public $uname; public $password; public function __construct($uname,$password) { $this->uname=$uname; $this->password=$password; } public function __wakeup() { if($this->pa
2021-09-02 20:39:44
411
原创 ctfshow webAK赛
签到_观己web1_观字web2_观星点击不同的链接上方的url处id会有变化,所以可能是SQL注入于是试了几下,令id2/2发现是id=1的界面,可以确定是数字型注入,然后又发现它过滤了一些东西所以,就fuzz了一下,发现主要困难在于过滤了逗号,like,等于号。所以我们只好盲注了。首先爆数据库0^(length(database())regexp(4))可以知到数据库长度是4然后0^(substr(database()from/**/1/**/for/**/1)regexp()
2021-09-01 22:19:23
354
原创 thinkphp系列
3.2.3sql漏洞thinkphp3.2.3 SQL注入漏洞复现3.2.3反序列化漏洞ThinkPHP3.2.3 反序列化漏洞复现
2021-08-31 21:24:49
4211
原创 ctfshow thinkPHP专题
569-Thinkphp3.23的url访问规则https://www.kancloud.cn/manual/thinkphp/1697URL模式入口文件是应用的单一入口,对应用的所有请求都定向到应用入口文件,系统会从URL参数中解析当前请求的模块、控制器和操作:http://serverName/index.php/模块/控制器/操作 这是3.2版本的标准URL格式。可以通过设置模块绑定或者域名部署等方式简化URL地址中的模块及控制器名称。所以访问url/index.php/Admin
2021-08-31 21:23:52
308
原创 ctfshow其他
396<?phperror_reporting(0);if(isset($_GET['url'])){ $url = parse_url($_GET['url']); shell_exec('echo '.$url['host'].'> '.$url['path']);}else{ highlight_file(__FILE__);}payloadurl=http://`tac fl*`/var/www/html/1.txt397error_r
2021-08-31 14:55:33
637
原创 SSRF类型总结
应对一些过滤127.0.0.1可以由以下代替127.0.1 、127.1、 127。0.0.1或者转成16进制 2进制curl可以用句号。代替点.修改域名的解析<?phperror_reporting(0);highlight_file(__FILE__);$url=$_POST['url'];$x=parse_url($url);if($x['scheme']==='http'||$x['scheme']==='https'){if(!preg_match('/localhos
2021-08-20 19:45:50
257
原创 CTFSHOW 萌新赛
给她听名字是git泄露,但是不知道是不是我的字典有问题,没有扫出来有用的信息。结果只能翻别人的wp了,得知了hint.php<?php$pass=sprintf("and pass='%s'",addslashes($_GET['pass']));$sql=sprintf("select * from user where name='%s' $pass",addslashes($_GET['name']));?>sprintf是有一个漏洞的,就是占位符漏洞。...
2021-08-10 14:38:41
1105
原创 CTFSHOW WEB题目
web签到题网页原代码中发现这个,base64解码就是flagweb2这道题目就是最简单的SQL注入了发现万能密码可以成功。于是后台查询语句猜测是select ‘column’ from ‘table’ where username=’$_POST[]’&password=’$_POST[]’ limit 1,1自己猜的熬,不一定是完全正确的。这样的话直接闭合前面的单引号就行了。之后就是123’ or 1=1 union select 1,2,3#123’ or 1=1 un
2021-08-09 16:04:59
3090
3
原创 BUUCTF刷题系列
[HCTF 2018]WarmUp查看网页源代码,得到source.php可以得到<?php highlight_file(__FILE__); class emmm { public static function checkFile(&$page) { $whitelist = ["source"=>"source.php","hint"=>"hint.php"];
2021-07-11 22:57:54
570
原创 sql注入总结
这里写目录标题联合注入对返回结果有过滤有时候需要用base64或hex返回对返回结果的数字进行了过滤利用读写文件把结果写入网站目录布尔盲注&&时间盲注普通方法regexpright join利用true绕过数字过滤MD5($str,true)利用where username=0中的弱类型比较堆叠注入修改列名预处理handler预处理十六进制转换into oufile的扩展利用报错注入双查询注入联合注入假设无过滤,这种是最简单的了算是。-1' union select 1,2,3--+
2021-07-09 17:20:43
287
原创 自己遇到的文件包含各种姿势总结
伪协议php://inputphp://filterdata://或者利用data协议的base64编码phar://index.php?file=phar://test.zip/phpinfo.txtzip://但使用zip协议,需要指定绝对路径,同时将#编码为%23,之后填上压缩包内的文件。index.php?file=zip://D:\phpStudy\WWW\fileinclude\test.zip%23phpinfo.txt日志包含User-Agent:<?php ev
2021-07-08 11:12:10
227
原创 PHP代码审计归纳总结
变量覆盖extract()该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量。条件:若有EXTR_SKIP则不行。<?php$a = "Original";$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");extract($my_array); echo "\$a = $a; \$b = $b; \$c = $c";?># 结果:
2021-07-06 16:59:42
1037
2
转载 Linux常用命令
系统信息arch 显示机器的处理器架构uname -m 显示机器的处理器架构uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)hdparm -i /dev/hda 罗列一个磁盘的架构特性hdparm -tT /dev/sda 在磁盘上执行测试性读取操作cat /proc/cpuinfo 显示CPU info的信息cat /proc/interrupts 显示中断cat /proc/meminfo 校验内存使用cat /pr
2021-07-05 23:00:35
125
原创 Linux渗透测试命令备忘表
系统信息命令命令描述whoami显示 Linux 上当前已登录用户。id向用户显示当前已登录的用户和组。last显示最后一次登陆的用户。mount显示已挂载的驱动echo “user:passwd” | chpasswd用一行命令重置密码。getent passwd列出 Linux 上的用户strings /usr/local/bin/blah显示非文本文件的内容,例如:一个二进制文件里面有什么。uname -ar显示运行中的内
2021-07-05 22:54:37
140
原创 ctfshow__黑盒测试
web380-测试url参数一开始什么也没有发现可以注入的地方,于是研究url参数。发现每个页面都带有参数,如page_1.php,page_2.php啥的。但是还是没有发现什么问题。于是看了看别人的wp,发现page.php。进去之后发现$id.php很有问题。于是试了一下$id可不可以get传参进去,穿了一个page_1发现可以,于是试了一下另id=flag于是发现了flagweb381-找后台进去之后发现是同样的模板,于是继续查看page.php,结果发现了这个这个想了想是没
2021-07-04 22:23:25
453
3
原创 ctfshow-SSRF
web351-普通的ssrf本地访问<?phperror_reporting(0);highlight_file(__FILE__);$url=$_POST['url'];$ch=curl_init($url);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$result=curl_exec($ch);curl_close($ch);echo ($result);?&
2021-07-01 17:00:47
520
1
原创 ctfshow————反序列化
web254<?php/*# -*- coding: utf-8 -*-# @Author: h1xa# @Date: 2020-12-02 17:44:47# @Last Modified by: h1xa# @Last Modified time: 2020-12-02 19:29:02# @email: h1xa@ctfer.com# @link: https://ctfer.com*/error_reporting(0);highlight_file(__
2021-06-30 20:11:04
960
3
原创 命令执行rec总结
过滤flag,php等关键字fla?fla\gfl*fla’'gPHP短标签或者<script language=”php”> echo“444444444444 <br>”</script>如果是替换可以双写绕过用于执行rce的函数和方法反引号``与shell_exec作用相同system执行外部程序,并且显示输出exec 执行一个外部程序passthru执行外部程序并且显示原始输出shell_exec通过 shell 环境执行
2021-06-30 19:48:47
1314
原创 sql注入————ctfshowsql注入
web171-1’ union select 1,2,password from ctfshow_web.ctfshow_user–+web172-1’ union select 2,password from ctfshow_user2–+web173-1’ union select 1,2,password from ctfshow_user3–+web174-1’ union select ‘a’,replace(replace(replace(replace(replace(repla
2021-06-07 22:28:09
2007
原创 命令注入————ctfhub(过滤cat、空格、目录分隔符、运算符、综合过滤练习)
CTFHub 命令注入-过滤cat<?php$res = FALSE;if (isset($_GET['ip']) && $_GET['ip']) { $ip = $_GET['ip']; $m = []; if (!preg_match_all("/cat/", $ip, $m)) { $cmd = "ping -c 4 {$ip}"; exec($cmd, $res); } else { $r
2021-05-30 16:51:16
11418
2
原创 文件包含————ctfhub之读取源文件
php://filterphp://filter 读取源代码并进行base64编码输出,不然会直接当做php代码执行就看不到源代码内容了。PHP.ini:php://filter在双off的情况下也可以正常使用;allow_url_fopen :off/onallow_url_include:off/on举例:http://127.0.0.1/cmd.php?file=php://filter/read=convert.base64-encode/resource=./cmd.phpCT
2021-05-29 22:10:55
850
原创 文件包含————ctfhub之远程包含
远程文件包含漏洞在PHP的配置文件php.ini里将allow_url_fopen和allow_url_include设置为ON,include/require等包含函数可以加载远程文件,如果远程文件没经过严格的过滤,导致了执行恶意文件的代码,这就是远程文件包含漏洞。CTFHUB之远程包含...
2021-05-29 21:56:39
2118
原创 文件包含————ctfhub之php://input
php://inputphp输入流php://input的使用分析CTFHUB之php:input首先看到代码<?phpif (isset($_GET['file'])) { if ( substr($_GET["file"], 0, 6) === "php://" ) {#字符串的前6个必须是php://input include($_GET["file"]); } else { echo "Hacker!!!"; }} else
2021-05-29 15:58:59
3175
原创 文件包含————ctfhub文件包含(利用蚁剑或者eval)
include()函数include()/require()/include_once()/require_once()参数可控的情况下,如导入为非.php文件,则仍按照php语法进行解析,这是include()函数所决定的。CTFHUB之文件包含进入页面是这个样子的<?phperror_reporting(0);if (isset($_GET['file'])) { if (!strpos($_GET["file"], "flag")) {#该字符串第一次出现的位置
2021-05-29 15:18:43
1139
原创 文件上传————ctfhub之双写绕过
CTFHub 文件上传——双写绕过可以看到源代码$name = basename($_FILES['file']['name']);$blacklist = array("php", "php5", "php4", "php3", "phtml", "pht", "jsp", "jspa", "jspx", "jsw", "jsv", "jspf", "jtml", "asp", "aspx", "asa", "asax", "ascx", "ashx", "asmx", "cer", "swf",
2021-05-29 11:29:23
744
原创 文件上传————ctfhub之%00截断
%00截断原理原理CTFHub 文件上传 - 00截断查看源文件可以看到部分源码if (!empty($_POST['submit'])) { $name = basename($_FILES['file']['name']);#$_FILES 是一个预定义的数组,用来获取通过 POST 方法上传文件的相关信息。basename返回文件名 $info = pathinfo($name);#pathinfo以数组的形式返回关于文件路径的信息。 $ext = $info['ext
2021-05-29 11:10:13
1277
原创 文件上传————ctfhub之MIME绕过
什么是MIMEMIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。它是一个互联网标准,扩展了电子邮件标准,使其能够支持:非ASCII字符文本;非文本格式附件(二进制、声音、图像等);由多部分(multiple parts)组成的消息体;包含非ASCII字符的头信息
2021-05-29 10:15:29
821
原创 文件上传————ctfhub之文件头检查
CTFHub 文件上传 - 文件头检测先上传一个php文件,意料之中失败有白名单限制,修改后缀名试一下,发现弹出文件类型错误。根据题目,就只好做一个图片马,因为检测的是文件头,而不是后缀名这里随便画一个图,然后用记事本打开,在后面添加一句话木马。把文件改为php,同时修改Content-type为image/jpg上传成功后,用蚁剑连接,拿到flag...
2021-05-29 10:00:48
2748
1
原创 文件上传————ctfhub之.htaccess
CTFHub 文件上传 - htaccess.htaccesshtaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能当我们上传php文件的时候,发现后台对文件进行了黑名单过滤。我们来新建一个.htaccess文件,内容为上图,意思是把文件当做php文件来进行解析上传成功后,我们在把php改为pn
2021-05-29 09:05:59
424
原创 文件上传————ctfhub无验证和前端验证
CTFHUB文件上传之无验证这种是最简单的一种类型,直接上传文件然后用蚁剑连接即可这里写好一句话木马。上传之后这里给出了上传文件的相对路径 upload/1.php连接成功后,进入文件管理找flag到这里就结束了CTFHUB文件上传之前端验证这里题目直接说了是js前端验证,这里用brupsuite解决,方法很多。当我们再次上传php文件的时候显示改文件不允许上传,这里可以把php改为其他类型的文件这里改了文件后缀名之后可以进行上传,用bru
2021-05-29 08:42:14
582
原创 什么是DS_Store?DS_Store源码泄露/bugku-web36(全都过滤了绝望吗?)
什么是DS_Store.DS_Store(英文全称 Desktop Services Store)是一种由苹果公司的Mac OS X操作系统所创造的隐藏文件,目的在于存贮目录的自定义属性,例如文件们的图标位置或者是背景色的选择。相当于 Windows 下的 desktop.ini。DS_Store文件泄露如果开发/设计人员将.DS_Store上传部署到线上环境,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。工具源码地址:https://github.com/lijiejie/ds_
2021-05-28 12:09:20
1576
原创 Problem H: 藏头诗
**Description**有个小伙暗恋同班的姑娘,但是苦于害羞腼腆不敢直抒胸臆。于是小伙打算写一首英文情诗给她。为了使这首情诗高端霸气上档次,小伙经过三天三夜的精心创作写了一首藏头的情诗。请问你能看出他想要表达的真正内容吗?Input输入有T组(T≤20)。 每组数据第一行先输入一个整数N(N<100),表示下面要输入N行。接下来N行,每行输入一段英文(长度小于1000...
2019-12-24 15:39:57
533
2
原创 Problem D: 回文
Description“回文(Palindrome)”是指一个串和它的倒序串完全一样,例如“文言文”、“上海在海上”、“妈妈爱我,我爱妈妈”就是回文。接下来,你要编写一个程序来判断一个串是不是"回文"。在这里,“回文”是指一个串中大小写不敏感的英文字母(a和A是同一个字母)和数字的顺序和逆序完全相同,其他字符(如空白符、标点和其他符号等)及所在位置被忽略。Input输入为多行,到文件...
2019-12-10 22:18:40
474
原创 Problem C: Caesar密码
Description古罗马时,凯撒大帝为了能够确保他与远方的将军之间的通信不被敌人的间谍所获知,发明了Caesar密码。这是一种非常简单的加法替换密码。直到1915年,俄国军队仍在使用Caesar密码,当时军队人员素质不高,稍微复杂一点的密码就很难推广。对于奥地利和普鲁士军队的密码分析家来说,这种密码再简单不过了。Caesar密码是利用下面的字母映射表进行加密的,第一行是加密前的字母(称作...
2019-12-10 22:13:11
675
原创 Problem B: 动态的字符串排序
Description把字符串按照ASCII码序的从小到大排列出来。串的ASCII码序遵循如下递归定义:1 两串的前n-1个字符相同,第n个字符ASCII码序小的排在前面;2 只有两串的字符完全相同时,才有两串相等。字符的ASCII码序比较可以用strcmp()函数完成。Input第一行输入为一个整数N(N<=50,000),后接N行,每行一个字符串,串长不超过100,0...
2019-12-10 22:10:09
372
原创 Problem A: 编写函数:谁能上春晚? (Append Code)
Description科大电视台将在2013年2月10日举办一场大型春节晚会。为了选拔好节目,科大电视台将于近日举办一次“直通科大春晚”的节目,届时将有M名选手和N名评委参加,并选拔排名前三甲的选手参加春晚。选手的排序原则是:对每名选手,N个评委的评分需要去掉一个最高分和一个最低分,然后求其平均分,按照平均分进行递减排序。假定任意2名选手的平均得分都不相同。现在,已知每位评委给每名参数选手...
2019-12-10 22:04:06
177
原创 Problem F: 学生成绩统计表
#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ int m,n,i,j; scanf("%d%d",&m,&n); double a[m+1][n+1]; char s[n+2][60],t[m+1][60];//不知道为啥非...
2019-12-07 21:22:00
1055
原创 Problem A: 点与矩形的关系(Append Code)
#include<stdio.h>typedef struct point{ int x; int y;}POINT;typedef struct rect{ POINT LT; POINT RB;}RECT;void getPoint(POINT *p){ scanf("%d%d",&p->x,&p->...
2019-12-07 17:42:24
811
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人