Bootstrap

CTF之web安全基础

CTF WEB安全基础

信息泄露

在这里插入图片描述(1)通过查看源码获取flag
例:index.php.bak /robots.txt
/.svn.entries (利用seay svn漏洞扫描工具)
/.git/config (利用git源码泄漏工具)
下面介绍一下用git源码泄露工具
在Git_Extract-master目录下shfit+右键打开Powershell
输入pyhon2 .\git_extract.py http://example.com/.git/config

(2)通过查看备份文件

常见的网站备份文件后缀:
tar.gz
zip
rar
bak
php~(gedit)
swp(vim源码泄露)

在这里插入图片描述在这里插入图片描述

SQL注入漏洞

sql注入成因和使用条件

1、SQL注入的成因
就是指web应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是攻击者可控的,并且参数带入了数据库查询,攻击者可以通过构造不同的SQL语句来实现对数据库的任意操作。

2、SQL注入漏洞的产生需要满足两个关键条件:
(1)参数用户可控:前端传入后端的参数内容是用户可控的。
(2)参数带入数据库查询:传入的参数拼接到SQL语句,且带入数据库查询

SQL注入类型

sql注入方法

在DVWA环境下的low级别做sql injection

不使用sqlmap工具

(1)sql有回显位的注入

常用函数

user() 
database() 
version() 
@@datadir 
concat() 		// concat(' ',table_name,' ',username)
group_concat() 
concat_ws()    //concat_ws('#',username,password)
hex()   //返回十六进制

1.判断注入点

传入SQL语句可控参数分为两类

  1. 数字类型,参数不用被引号括起来,如?id=1
  2. 其他类型,参数要被引号扩起来,如?name=“phone”

判断某个链接是否存在SQL注入,可以通过对其传入的可控参数进行简单的构造,通过服务端返回的内容来判断有无注入

其他类型

构造测试                            预期结果                                 变种
a'#                      //触发错误,返回数据库错误                              
a' or '1'='1#            //永真条件,返回所有记录                   a') or ('1'=1   
a' or '1'='2#            //空条件,返回原来相同结果                  a') or ('1'=2
a' and '1'='2#           //永假条件,不返回记录                      a') and 
;