web入门之文件包含

第一题无过滤,直接?file=伪协议包含base64编码=flag.php,得到一串base64编码复制下来解码得到flag

第二题过滤了php,将PHP替换成了???,之后我们使用data协议?flie=data//text/plain, 然后点enable post,输入1=phpinfo(); 发现可以绕过过滤,然后直接读文件,1=system(“tac flag.php”)

第三题多过滤了一个data,这时候我们可以使用直接包含日志,直接加入一个在UA里面,Value为 插入之后点掉ua格子 在url上面输入?file=/var/log/nginx/access.log

点开enable post 输入1=system(’tac flag.php‘);之后没有发现东西,这时候查看一下目录,1=system(’ls‘); 发现文件名字有改动,把flag改为fl0g即可

第四题多过滤了冒号,我们同样是直接包含日志,添加一个ua,在value里面输入 之后添加进去,然后再url后面输入文件位置?file=/var/log/nginx/access.log之后点击enable post 输入1=phpinfo(); 查看能否进去,之后输入1=system(‘ls’); 查看文件,最后输入1=system(‘tac fl0g.php’);打开得到flag

第五题多过滤了一个点,这次要使用包含无后缀的一个文件session,后面不会做了

MISC签到题

下载得到一个TXT文件,打开之后看到base64编码,之后通过里面的提示data1-4去base64转成图片之后拼接起来得到flag

猫这题下载之后得到一个png文件图,想到图片隐写,使用工具之后隐写得到一个TXT文件,点开会看到一个{youkonwlsb!},一开始以为是flag去提交,但是并不是,后面再看PNG图片改格式tar发现里面还有一个文件,点开发现需要密码,尝试爆破之后无法爆破出来,便想到上面的文字,输入之后解开文件,发现是一个emoji密码,而且emoji密码需要密钥才能去打开,找半天才发现文件名才是密钥,最后得出flag

卷卷卷死同行

下载之后得到一个txt文件,看到一串+和-和[]和-和<>之后知道是Brainfuck/Ook!编码,去在线网站解密之后得到一串677B676569737D7866636E5F72615F6E65742175743031695F31797472696763643331656E
字符串,去base16解码之后得到一串字符g{geis}xfcn_ra_net!ut01i_1ytrigcd31en,这个想了很久不知道怎么解密,最后发现栅栏加密是一个选项,尝试之后得到flag

MISC入门第一题(ctfshow)

图片篇(基础操作)1

第一个直接下载就完事,第二个下载之后发现是文本文件,之后用winhex查看格式,发现是PNG的格式,然后将文件改成PNG的格式

BUUCTF的MISC

第一题金三胖,打开之后发现是一个gif格式图,从不断闪过的片段得知是藏有flag,之后使用Stegsolve对图片进行分帧查看才得到flag

第二题二维码,首先拿到文件是一个二维码,用二维码查看工具发现里面并无flag,然后去虚拟机kali里面binwalk 图片文件,之后发现有一个zip,使用dd if=QR_code.png of=flag.zip skip=471 bs=1将图片分离到flag.zip里面,然后拖出来得到zip爆破密码得到flag

第三题你竟然拒绝我,本题拿到文件之后使用winhex打开,在最后面找到flag

第四题N种方法解决,下载之后发现是exe文件打不开,转成TXT之后发现里面有base64的码,在线解码得到二维码,之后得到flag

第五题大白,一张不完整png,拖入010editor,提示crc错误,使用脚本跑出图片宽高为679*479,修改高度之后得到flag

第六题基础破解,解压得到一个rar包,4位纯数字爆破得到密码打开得到一段base64码之后解密得到flag

第七题乌镇峰会,下载之后用winhex打开之后找到flag

第八题LSB,用Stegsolve打开之后去调节图片隐写之后得到flag

第九题zip伪加密,下载之后发现爆破无法解密,之后用010editor打开之后在两个0900处修改0000之后保存就能打开了

第十题文件中的密码,拿到文件后直接用winhex打开找到一串相似flag的字符串,包裹之后就是flag

第十一题wireshark,下载文件得到一个流量包,打开wireshark之后对其过滤http过滤出POST包,使用这条命令http.request.method==POST,之后追踪TCP流之后得到flag

第十二题rar,下载得到压缩包直接爆破完事

web入门命令执行

命令执行1-4

在一些特定场景里面这些方法都是通用的

第一个任务里面是屏蔽了flag这个词,首先使用?c=system(‘ls’);来查看目录,还有一个指令是?c=phpinfo();可以查看到php的信息,知道目录之后用?c=system(“cp flag.php 1.txt”);来查看文件,由于它过滤了flag,所以说要用一个符号去替换flag中的字母才可以执行,切换目录之后直接输入1.txt即可查看文件中的flag

第二个任务里面过滤了flag和system和php这些词,这时候我们可以用顿号来代替system这个字符,而且再用?去代替它过滤的词语,写出来就是?c=cp fla?.??? 1.txt;来直接得到flag文件的目录,然后输入1.txt找到flag

第三个任务中过滤了一堆字符,这时候使用嵌套eval来执行,该字符可以使得你输入的指令不会受到屏蔽,在下一个任务中也可以用同样的方法,cat指令是查看文件的意思,所以整条指令为?c=eval($_GET[1]);&1=system(‘cat flag.php’);之后执行之后发现是空白,因为是藏在php的文件里面,这时候我们去查看源代码就可以找到flag,第二种方法可以吧cat 改为tac就是反过来读,同样也可以找到flag

第四个任务同样是屏蔽了一堆字符(有空格和分号),这时候可以使用上一个方法,还有一个方法就是使用?c=include&0a$_GET[1];&1=/etc/passwd,这时候发现不能执行,因为;已经被过滤了,所以我们使用?>来代替;,而%0a是一个换行符。这时候我们读取了文本文件。然后再修改后面&1=flag.php发现是看不到的,因为他没有输入flag的变量,因为没有;分隔导致无法输出,所以我们要用文件包含来做这个题目,所以我们使用hackbar里面的LFI的插件做,在&1=后面点击插件,再输入flag.php,因为用了插件之后没有过滤了,拿到一串base64的码,在复制到下面点击encoding中的base64 decode解码得到flag

命令执行5

看题目的时候可以知道它屏蔽了一些字符,这次包括双引号。解法与上一个大同小异,先打开hackbar之后再url后面添加?c=require%0a$_GET[1]?>&1=/etc/passwd,进去之后用在&1=后面点击插件,再输入flag.php,因为用了插件之后没有过滤了,拿到一串base64的码,在复制到下面点击encoding中的base64 decode解码得到flag

命令执行6

看题目知道这个题目多过滤了一个冒号,所以可以使用语言结构,语言结构有echo print isset unset include require这些,而phpinfo属于在数据段使用的。所以这里要用?c=include%0a$_GET[1]?>&1=/etc/passwd,进去之后用在&1=后面点击插件,再输入flag.php,因为用了插件之后没有过滤了,拿到一串base64的码,在复制到下面点击encoding中的base64 decode解码得到flag

命令执行7

本题目和上两题一样

命令执行8

本题过滤数字,吧GET[1]换成GET[a]和&1换成&a之后和上面的题一模一样

命令执行9

本题考点是伪协议,所以我们使用data协议去做,在url后面添加?c=data://text/plain,之后就复制一个flag文件到1.txt里面,之后再直接访问txt就行

命令执行10

本题屏蔽了php,所以上一题的做法不可行,所以吧php改成=号,后面的php换成*号就变成一个短标签,变成这种形式?c=data://text/plain,,然后查找1.txt即可

命令执行11

首先用?c=data://text/plain,来查看一下是否可以使用,可知可以使用之后就输入?c=data://text/plain,得到flag

命令执行12

本题增多了屏蔽的符号。第一种方法显示原码show_source(next(array_reverse(scandir(pos(localeconv())))));

下面是一些函数的作用

localeconv():返回一包含本地数字及货币格式信息的数组。其中数组中的第一个为点号(.)
pos():返回数组中的当前元素的值。
array_reverse():数组逆序,将数组转置
打印当初路径下文件的函数:print_r(scandir(‘.’))
current() 函数返回数组中的当前元素(单元),默认取第一个值scandir():获取目录下的文件,pos和它相同
next(): 函数将内部指针指向数组中的下一个元素,并输出。
因为屏蔽了点号,所以首先使用print_r(scandir(pos(localeconv())));查看打印当前目录,之后因为flag在第三个元素,所以我们使用next和array_reverse函数去输出

web入门爆破

web入门爆破1

首先进入网站发现是要输入账号密码,试着输入账号admin和任意密码使用bp抓包,之后发送响应包查看,发现有一个回应头被base64码加密了,尝试去用base64解码得到admin:123,中间用分号隔开,然后去发送到intruder上,分别选中账号和密码那一栏,之后切换到payload的payload processing处选上Add Prefix加上前缀admin: 和base64-encode,取消payload ending的勾选,最后再去options那里添加ctfshow作为flag查询,最后面开始去爆破,等待后便可得到flag

web入门爆破2

直接寻找软件爆破子域名,之后在vip那个子域名上找到flag

web入门信息收集

web入门第9

考察vim的缓存信息泄露,通过在url后加上index.php.swp之后取得文件

web入门第10

首先通过bp抓包,找到cookie之后用url解码,在bp的decoder选项中,选择smart decode智能解码

web入门第11

http://dbcha.com/通过这个网站域名解析查询,查询给出的网址ctfshow.com的TXT记录后得到flag

web入门第12

首先进入他给出的网站和提示得到密码372619038,后面访问robots.txt得到后台目录得到用户名,之后在url后面加上/admin/之后进去登录输入账号密码得到flag

web入门第13

首先进入他的网站,根据提示点击document进去得到账号密码和后台地址,之后在原网页url上添加/system1103/login.php得到后台地址再输入账号密码得到flag

web入门第14

首先进入网站,在url上面输入/editor/之后进入一个编辑模式,之后点击上传图片,找到flag的图片之后得到他的地址,进入原网站之后在url后面输入其地址则可以得到flag

web入门第15

首先在网站上面找到他的邮箱,之后输入/admin/进入后台,点击忘记密码,进入问题去查找他的QQ找到问题答案重置密码,然后得到账号密码登陆之后可以得到flag

web入门第16

首先在原url上输入/tz.php进入到雅黑PHP探针,之后找到并查看phpinfo,在phpinfo显示的数据中找到flag

web入门第17

首先根据提示直接用命令指示器去ping他所给出的网站,得到IP地址之后得到flag

web入门第18

首先根据提示进入网页,查看源代码,找到js文件点进去查看,之后找到一个Unicode码(统一码),通过解码工具得到提示110.php,之后返回原网址输入则得到flag

web入门第19

直接进入网址得到源代码,可以查看到里面存放着账号密码,然后用hackbar输入哈希值得到flag,注意u是username而p是password在本题中。第二种方法是用aes解码,通过源代码中的提示得到mode和key和偏移量,之后通过解码得到密码,输入账号密码则得到flag

web入门第20

该题为access数据库,在原url上添加db/db.mdb之后可以得到一个文件,下载下来查找flag则可以得到flag