在HTTP中,基本认证(英语:Basic access authentication)是允许http用户代理(如:网页浏览器)在请求时,提供 用户名 和 密码 的一种方式。详情请查看 https://zh.wikipedia.org/wiki/HTTP基本认证
进入后可以看到题目是这样的
1、首先还是说一下解题过程,还是使用bp抓包
(1)、点击click后会弹出一个登陆窗口,提示是Do u know admin?由此可以猜测用户名为admin。(大部分都为admin)
(2)、随意输入几个字符,并抓包得到这样的请求包
将Authorization后的码解码后,发现就是刚刚输入的数据
(3)、于是我们只需要输入正确的账号密码,即可得到flag,这里采用暴力破解点击Send to intruder
(4)、在需要破解的地方添加对应的符号,确定尝试的位置
(5)、打开intruder 页面,选择Payload Sets为Simple List,并将附件中的密码表导入(6)、因为基础认证的格式为用户名:密码,我们已经知道用户名为admin,所以为破解添加前缀“admin:“;并取消URL-encode。
(7)、完成以上操作后,即可点击开始破解,之后根据状态码不同的一个,查看response即可得到flag
2、基本认证原理
当客户端发送请求页面需要认证时,服务器会一个输入框,要求输入用户的账号和密码。如果客户端输入正确的账号和密码,那么服务器就会给出相应的响应报文,否则则会告知错误从新输入。
放到协议中,1、客户端请求所需页面。2、服务器收到后添加添加WWW-Authenticate标头,浏览器识别到Basic后弹出对话框Realm表示Web服务器中受保护文档的安全域。3、客户端再次发送请求报文并添加Authorization标头,第一个参数为类型,第二个参数为凭证,凭证的格式为“账号:密码”使用Base 64编码加密,由于Base 64可以逆向解密,所以是不安全的。4、得到凭证后服务器根据凭证,决定发送对应的响应报文。
缺点
1、基础认证总体来说是不安全的,由于其编码方式可以逆解密,所以账号和密码是可以被得到的
2、就算不能被解密,攻击者同样可以获取认证内容后,不断发送请求,即不能抵御重放攻击
3、中间人攻击同样不能抵御