我是一名练习了2年半的i kun 故事开始
ctfshow 命令执行 41关至70关
过滤了部分字符 最后用代码执行
41关
42关
标准错误的输出也在标准输出里面进行输出
然后统一输出到这个黑洞里面
所有c的返回结果是不显示的 是没有显示作用的
双写绕过
?c=ls;ls
flag.php index.php 出现了这个
因为这里面有分膈分化 里面是把第二个命令写到第一个命令里面了
接下来
?c=cat glag.php;ls
出现了空白 那就对了
因为没有回显 右键查看源代码
没有
?c=tac flag.php;ls
之前就说过了 tac 和cat都可以 调换一下开头就行了
逆向返回 将html的注释进行一个破坏
43关
把分号过滤了
可以绕过
?c=ls%26%26ls
这个是命令分割的意思
命令黑洞 & 这个是and符号 代表着连续的意思
可是我输入了2个%这个符号 后面那个符号不用管没什么影响 也不用管他会运行到哪里去
出现了这个
输入此命令拿到flag
?c=tac flag.php%26%26ls
通关
44关
过滤了cat flag 那么请自己思考 应该怎么办
前面我们说到 命令执行可以通过通配符来绕过
cat换个顺序变成tac flag换个字符变成fla* 就可以了
接下来输入
?c=tac fla*.php&&ls
先不要运行 要在里面加上 URL encode
变成了 ?c=tac%20fla*php%26%26ls
拿到了flag
再次强调一遍
这些符号也算是一个字符
计算机中能够直接识别的语言是编程语言
那么 我们所看到的符号 数字 字母 只要是出现在我们眼前的都是二进制 0和1组成的
因此 将符号换成通配符可以执行的原因
45关
运用上一关的方法
与上一关不同的是多过滤了一个空格
?c=ls&&ls 进行url encode 编码
然后进行编码
?c=ls%26%26ls
urlencode是一个函数,可将字符串以URL编码,用于编码处理。
URL编码(URL encoding),也称作百分号编码(Percent-encoding), 是特定上下文的统一资源定位符 (URL)的编码机制。
适用于统一资源标识符(URI)的编码,也用于为application/x-www-form-urlencoded MIME准备数据, 因为它用于通过HTTP的请求操作(request)提交HTML表单数据。
以上是官方解释
如有看不懂 我在简单说下 !!!
本身是一块石头 用了编码就变成了一张饼 并且可以吃下去 执行这个操作
讲一个例子
防止sql注入
URL编码平时是用不到的,因为IE会自动将输入到地址栏的非数字字母转换为url编码。曾有人提出数据库名字里带上“#”以防止被下载,因为IE遇到#就会忽略后面的字母。破解方法很简单——用url编码%23替换掉#。现在SQL注射非常流行,所以就有人写了一些防注射的脚本。
网络安全的路线涉及较多
知识点很碎
有时候你学一个知识点 就会蹦出另外一个知识点
?c=tac fla*.php%26%26ls
过滤了空格
思考一下怎么办
思考10秒想一想
然后在往下翻
输入 请手工输入 不要偷懒
?c=tac%20fla*.php%26%26ls
我们用的是url编码 来进行运行
那么不止是有这一个
百度打开 搜索 ascll编码
找到 水平制表符 0x09 的那一行
将20改成09
?c=tac%09fla*.php%26%26ls
所有的事情 你只要做过一遍
然后在不看教程来一遍 记个大概 明白怎么回事就行了
忘记的东西 都是边查百度边做的 内容过多 不可能一下子全部想起来
你做这个事情 看到就能上手 你明白咋回事
就像漏洞复现 扫描到了这个漏洞名称
接着在百度上搜索漏洞名称 以及复现方式
复的了 说明漏洞并未修复 你的渗透测试报告就能写了
46关