pikachu靶场总结(二)

三、CSRF 跨站请求

原理:由于站点没有对用户修改敏感信息时提交内容的这个过程进行防护,导致攻击者可以轻易的去伪造用户的一个请求,然后“借用”用户的权限完成一次非法的数据请求,进而对用户造成危害!

利用:比如小红正在浏览某购物网站,这个时候小红是处于登陆状态的,然后小黑给小红发送了一段链接,这个链接是小黑通过抓包或者其他手段伪造的一个请求数据的链接,如果这个时候小红一旦点击了这个链接,那么就会以小红的身份去发送请求,进而修改小红的数据等,此时攻击就发生了。所以相对来说这个漏洞的利用条件还是比较苛刻的,一般这个漏洞的级别也不是很高!

区分:这个漏洞容易和XSS弄混淆,我们还是以上面那个例子来说的话,如果是XSS漏洞的话,那小黑就可以直接拿到小红的cookie登录小红的账号进行操作了,所以总结来说,XSS是直接“获取”权限,而CSRF是“借用”权限!所以这两个漏洞谁的含金量高也就不言而喻了!

1.get型

get型的一般比较相对好伪造一些,因为攻击者可以去有漏洞的网站上自己注册一个账号,然后通过抓包就可以知道请求是长什么样子的!进而进行伪造!

举个栗子:比如我们如果抓到一个站点修改信息的包如下:http://192.168.6.141/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=111&phonenum=122&add=武汉&email=111&submit=submit HTTP/1.1
那我们就可以修改里面的参数然后发送给受害人,如果此时受害人正好以登录的情况浏览这个站点,那么他的信息就会被篡改!

2.post型

这个利用起来会稍微有点麻烦,我们需要构造一个钓鱼网站,里面把我们需要提交的post请求以表单的方式构造好,然后诱使受害者进行点击,然后从我们的站点将post请求发给目标站点,然后以此来达成我们的攻击目的!

3.token

token是一个随机生成的一长串数值,在后台生成然后发送到前端,在前端提交post请求时一并发送到后端进行验证,如果token不一致的话请求就不会生效,这样就防止了别人通过伪造请求对我们的站点进行csrf攻击!

4.防csrf的方法:

1.增加token就是一个很好的方法!

2.会话管理:
    设置会话过期机制比如会话过期时间要尽可能设置的短一些
    不会将一些敏感信息保存在客户端

3.访问控制安全管理:
    修改信息时进行二次身份验证,比如输入原密码等
    提交敏感信息时使用post方法不用get方法
    通过http头部的referer来限制原页面

5.referer:
也算是一个验证机制,可以验证我们的请求是从哪里过来的,如果不是我们要求的地方是不可以访问我的,这样其实可以有效地去防止钓鱼,比如上面我们说的post那种情况!我们用我们自己搭建的站点向目标站点提交表单信息如果referer不对就会被拦截!

四、sql注入漏洞

1.原理:

主要是开发人员在构建代码的时候没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些精心构造的语句,从而欺骗后台数据库对其进行执行,导致数据库信息泄露!

2.攻击流程

1.1注入点探测
    
    自动方式:使用web漏洞扫描工具,自动进行注入点发现
    手动方式:手工注入sqli测试语句进行注入点发现
1.2信息获取

    环境信息:比如数据库的类型,数据库的版本,操作系统的类型和版本等信息
 &nb

### Pikachu靶场SQL注入关卡通关教程 #### 关于SQL注入的基础理解 SQL注入是一种常见的安全漏洞攻击方法,其核心在于利用应用程序未对用户输入进行有效过滤或转义的情况下,将恶意的SQL代码嵌入到正常的查询语句中执行。在Pikachu靶场中,SQL注入练习旨在帮助学习者掌握如何发现并利用这种漏洞。 #### 测试注入点及其闭合方式 对于字符型注入点,通常需要尝试不同的闭合符号来完成SQL语句的有效构建。例如,在某些情况下可能适用单引号 `'` 或 `"` 来结束字符串上下文[^2]。如果目标字段是一个数值类型的参数,则可以直接使用括号`)`作为潜在的闭合手段之一[^1]。 #### 利用updatexml函数获取数据库名 一种有效的技术是运用MySQL内置函数`updatexml()`配合错误回显机制实现信息提取。下面给出了一种构造payload的方式用于读取当前使用的数据库名称: ```sql ' or updatexml(1,concat(0x7e,(select database()),0x7e),1) or ' ``` 此Payload会触发XML解析异常并将选定的数据拼接到错误消息之中显示出来[^3]。 #### 枚举数据表列表 为了进一步深入探索目标系统的结构,可以通过枚举information_schema库下的tables视图中的记录项找到感兴趣的特定表。这里提供了一个通用模板以及具体实例展示如何定位名为“users”的表格: 通用形式: ```sql ' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='your_database_here' limit X,Y),0x7e),1) and ' ``` 实际应用案例 (当X设为3时能够观察到users表的存在): ```sql ' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='pikachu' limit 3,1),0x7e),1) and ' ``` 上述操作允许我们逐步揭示隐藏的信息层次结构[^4]。 #### 总结建议 成功突破SQL注入防护不仅依赖理论知识积累还需要不断实践摸索新的技巧组合。务必记住始终遵循合法合规的原则下开展此类实验活动!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值