第十一天(web漏洞基础)
常见:SQL注入、文件上传、XSS跨站、文件包含、反序列化、代码执行、逻辑安全、未授权访问
其他:CSRF、SSRF、目录遍历、文件读取、文件下载、命令执行、XXE安全等…
高危(危害权限):SQL注入、文件上传、文件包含、代码执行、未授权访问、命令执行
中危:反序列化、逻辑安全
低危(低敏感信息泄露):
CTF重点:SQL注入、反序列化(常)、代码执行
SRC重点:全部涉及,但更多围绕 逻辑安全
红蓝对抗重点:SQL注入、文件上传、文件包含、代码执行、未授权访问、命令执行
SQL注入
union 注入恶意SQL语句
目录遍历
目录遍历(路径遍历)是由于web服务器或者web应用程序对用户输入的文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过利用一些特殊字符就可以绕过服务器的安全限制,访问任意的文件(可以使web根目录以外的文件),甚至执行系统命令。
\..可回到上一个文件夹,例如当前路径为a\b\c 我要获取a\b\d 则可a\b\c\..\d
可通过目录扫描工具得知目录结构(包含源码结构、数据库配置文件位置等)
文件读取
只能读取文件,不能读取目录,目录遍历可以读取目录
文件上传
上传后门文件
文件下载
通过其提供的下载功能,配合了解其目录结构后,可以获取网站的源码
MYSQL注入
第十二天(MYSQL简要注入)
1可控变量并2带入数据库查询,3变量不存在合理或适当过滤
www.xxx.com /?q=xx 其中是默认页面可能是index.php之类的
若x有注入点,则注入点x后面加1 = 1 等恶意语句
Sqlmap在url后进行测试,未必知道注入点,可能需要手工告知
MYSQL 知识点:
Linux严格区分大小写,windows不区分
Information_schema会存储所有数据库名、表名、列名
数据库中“.”代表下一级,例如a数据库中b表 a.b
Information_schema.tables 所有表
Information_schema.columns 所有列
Table_schema 数据库名
Table_name 表名
Columns_name 列名
group_concat作用:聚合在一起,一并返回,不会变成一条条记录返回
注释符 --+(减减加)#
limit 用法下标从0开始
limit 0,1 表示选取从第0行(即第一行)开始的1条数据
substr的下标从1开始
注入点判断:
传统方法:
And 1 = 1 页面正常
And 1 = 2 页面错误
则可能存在注入点
新方法:
判断是否能带入数据库中查询,即任意对可变变量添加内容,若返回错误页面,则说明可带入数据库中查询,存在注入;若返回正常页面或者返回404又或者跳转其他页面,则可能存在过滤
低版本注入过程(猜):
字典爆破
高版本注入过程:
X=-1 Union Select 1,version(),database(),user(),@@version_compile_os..n #前提是能写的下,不然就一个一个替换
Union Select 1,group_concat(schema_name),3 from information_schema.schemata
Union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=’【数据库名】’
Uniont select 1,group_concat(column_name),3 from information_schema.columns where table_name=’【表名】’ where table_schema=’【数据库名】’
Union Select * from 【数据库名】.【表名】
当显示的内容有限时,设有xy两个列,select x,y from 【数据库名】.【表名】
Limit x,1 变动猜解 限制显示条目数量
第十三天(MYSQL注入)
文件读写操作
文件读取:可读取敏感配置信息,例如数据库配置文件
文件写入:可直接写入一句话木马直接getshell
路径是斜杠‘、’,反斜杠可能会遇到\n识别为换行,否则反斜杠要转义双写‘\\’
Load_file():读取函数
Select load_file(‘c:/xxx/xxx.txt’)
Into outfile 或into dumpfile:导出函数
Select ‘x’into outfile ‘c:/xxx/xxx/txt’
路径获取常见方法:
魔术引号magic_quotes_gpc=On/Off
该属性存在于php.ini文件中
当为On时,输入数据中含单引号(’)、双引号(”)、反斜杠(\)和NULL字符时,都会被加上反斜杠,所以前面的文件读取操作将会失效,读写路径受影响,路径被添加了非常多的反斜杠
可以通过将路径‘d:\\xx\\xx\\x.txt’ 转换成hex16进制,并替换,即可正常运行
防注入
内置函数
例如php中的is_int()
或者自己写一个过滤函数(select、union)
关键字过滤、关键字大小写过滤