目录①easy_include②easy_web③easy_loginweb一共5题,我出了3题,巧的是好像师傅们也只出了3题,跨年拿旗还是很快乐的,下面直接贴出自己的wp.①easy_includepearcmd不解释这里主要是 ,file://协议支持以file://localhost/etc/hosts的方式访问服务器文件,来绕过开头必须是字母的限制 ②easy_web代码审计,大致思路是通过构造pop链实现classChu0_write类中的eval函数RCE首先传参是show_show.show,php变量名只能是数字字母下划线,传进去的变量名会将 ,+,.,[等符号转换成_,若变量
web1注意关键字我们进行查看源代码:在此讲一下查看源代码的常用的两种方式1.右键鼠标查看源代码2.快捷键Ctrl+U查看源码。所以这题进入我们可以看到 我们右键查看源代码web2进入环境后发现 所以我们不用右键,直接使用Ctrl+U查看源码;即可得到答案 web-3 根据提示使用bp抓包即可发现flagweb-4 由题目可知这题涉及robots协议:详细可以参考一下这个大佬的博客:(8条消息)robots.txt文件详解_百度文库robots文件解读_passport_daizi的博客-CSDN博客我们首先讲解一下robots的一些知识:Robots协议(也称为爬虫协议、机器人协议等)的全
XSS我tm又来了,总之top10先过一遍,到第三个XSS了,下一个要去看了,看了网上很多wp总感觉不是太全,所以就自己写了一个网站没有对用户提交的数据进行转义处理或者过滤不足,从而被恶意攻击者利用进而被添加一些恶意可执行脚本嵌入到web页面中去,使别的用户访问都会执行相应的嵌入代码。从而盗取用户资料,利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式出现多的地方:1、数据交互的地方:get、post、headers、反馈与浏览、富文本编辑器、各类标签插入和自定义2、数据输出的地方:用户资料、关键字、标签、说明、文件上传废话不多说直接看题吧前置准备document.cookie
CTFshow代码审计web301下载的附件的目录结构如下:开题后界面,看见输入框,感觉是sql。大概浏览一遍源码,我们可以发现在checklogin.php文件中有无过滤的SQL语句,SQL注入没得跑了。这题SQL注入有三种做法。方法一:普通盲注,时间和布尔都行,这里不赘述了。方法二:联合注入。在联合查询并不存在的数据时,联合查询就会构造一个虚拟的数据就相当于构造了一个虚拟账户,可以使用这个账户登录。其实很好理解,平常我们联合注入的时候一般是这样的paylaod:?id=1and1=2unionselect1,database()#。两个回显位,返回给我们的是1数据库名称。这个1是哪来的呢,
1、ctf.show每周大挑战之RCE极限挑战php的eval()解释:eval()函数把字符串按照PHP代码来计算。该字符串必须是合法的PHP代码,且必须以分号结尾。return语句会立即终止对字符串的计算。返回值:除非在代码字符串中调用return语句,则返回传给return语句的值,否则返回NULL。如果代码字符串中存在解析错误,则eval()函数返回FALSE。 2、RCE挑战1如下图所示,POST传参时,参数名为code,后台对"("、"."做了替换。 如何才能查找到想要的flag呢?执行远程命令使用 system('ls/');或使用反引号`ls/`; 如上图所示,使用post的c
Web29: 简单的命令执行,使用/i模式过滤大小写flag,可以使用通配符绕过过滤。Web30: 比上一题多过滤system与php,可以使用其他函数来执行命令,具体可以参考PHP中常见的命令执行函数与代码执行函数_-passthru-CSDN博客注意: system(),passthru()自动输出结果 exec(),shell_exec()需要打印(echo/print)结果,且exec()仅打印最后一行Web31: 多过滤cat,sort,shell,'.',空格,''' cat,sort可用其他查询命令,如tac,nl等;使用passthru绕过命令执行函数;'''单引号
CTFshowweb入门—web56题目:题目分析:查看本题,发现本题为命令执行类题目,但是有一个很致命的点,那么就是他过滤了所有的字母和数字,以及一系列的符号。因此本题最值得推敲的点就是如何实现无字母数字的命令执行通过拜读P神的一篇文章,其中《无字母数字webshell之提高篇》讲到了想要getshell,但是又被过滤了数字与字母时,需要如何利用。在P神文章中>深入理解glob通配符此处为何最后一位需要用[@-[]来表示,这需要查阅ascii码表,可以看出,大写字母是被@和[两个字符所包围的,因此[@-[]可以用来表示所有的大写字母。本题没有过滤符号.(点),因此可以想到linux中该符号.
Web1: Ctrl+U或者F12查看页面源代码.Web2: JS禁用F12,Ctrl+U查看源代码Web3: 前端未泄露,抓包查看返回包发现FlagWeb4: robots.txt文件泄露Web5: phps源码泄露,phps存放着php源码,可通过尝试访问/index.phps读取,或者尝试扫描工具扫描读取phps即为PHPSource。 访问index.phps下载phps文件查看flagWeb6: 网站源码泄露,根据提示查看当前目录存在备份文件泄露,访问www.zip进行源码下载Web7: git版本控制泄露,访问url/.git/查看git版本控制泄露的文件,可使用G
Web21: 进入主页为登录框,随便输入信息用burp抓包,发现Authorization认证使用Base64加密传输,解密发现为刚才输入的信息右键发送至Intruder进行爆破,使用题目给出的字典进行爆破并添加变量添加前缀使用户名固定并用Base64加密传输,记得取消勾选url-encode,不然会转义Base64的"="爆破出结果Web22: 提示子域名爆破,可以使用Layer或者fofa等来进行子域名信息收集,由于子域名已经失效,所以无法爆破。Web23: 方法一:使用alberthao师傅的脚本进行爆破匹配字符,该脚本简单的来说就是先设置一个字符数字的字典,然后从字典拼接出一个两
webeasy_signinurl是base64编码后的文件名直接读个index.php然后查看源码解码base64easy_ssti过滤了斜杠,不能访问根目录了,考虑手动拼接一个{{lipsum.__globals__.os.popen(lipsum.__globals__.__str__().__getitem__(34)~lipsum.__globals__.__str__().__getitem__(5)~lipsum.__globals__.__str__().__getitem__(22)~lipsum.__globals__.__str__().__getitem__(139)~