一、反射性xss(get)

登录pikachu选择xss模块,第一题,写了一下,发现输入长度不够,很简单,在前端改一下长度就可以使用了,这题就不做过多解释

或者直接在URL中进行写入,也是肥肠滴方便

就很简单的弹窗了,下一道

二、反射性XSS(post)

第二道xss,要输账号密码,我们先用暴力破解的密码试一下

好的进去了,那我们就不用多管了。

继续试一下看看能不能正常弹窗

又弹窗????没设置过滤那我们就笑纳了呗,下一个

三、存储型xss

是一个无情的留言板,我们来正常弹窗试一下

????结果又正常弹窗了,看来还是没设置什么过滤,那我们继续下一道呗

四、DOM型xss

来嘛

终于不可以了,我们找一下问题所在

发现是因为它一点击就会触发domxss(),找到了domxss函数的内核是

function domxss(){
var str = document.getElementById("text").value;
document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>";
}

闭合一下发现还是很容易就弹窗了,pyload是'><img src="#" onmouseover="alert('xss')">

至于下一个xss-x的问题,和这个题是肥肠相似的,所以就不再单独解释,直接给出弹窗叭

五、xss之盲打

让我们小试一下

发现没有弹窗,但问题很大,看了一下提示,登陆了一下后台

发现已经成功弹窗~

六、xss之过滤

我正常来弹个窗试一下

(别说这些'>'的话,不要怕,就是干!)?????也就是说他把<>给过滤掉了??

测试了后其实并不是,有很多没有过滤的东西,测试了很久发现其实只需要更改大小写就可以进行绕过

payload:<SCRIPT>alert(1)</ScriPT>

七、xss之htmlspecialchars

需要查看一下源码了

htmlspecialchars这个函数将网页上面的爬取直接写到href里面,可以看到 “ " ”,“ > ”和“ < ”都经过了编码,剩下的字符没有,单引号依然可以使用

既然已经记录想必就可以构造闭合点击弹窗了

' onclick=alert(1) '

成功

八、xss之href输出

直接<script>alert(1)</script>

发现

不是很对,既然写在herf里了的话,就直接构造alert

payload:javascript:alert(1)

OK.下一个

九、xss之js输出

上<script>alert(1)</script>,发现无任何反应

看源码发现到了问题所在,多加一个闭合就可了

payload:'</script><script>alert('xss')</script>

弹窗成功

CSRF

一、csrf(get)

先根据提示登录

进入修改个人信息

利用审查元素,查看submit类型

发现是get传参,提交一次试试

找到了传参的参数以及路径,利用netword构造payload

http://127.0.0.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=123456789&add=PPSUC&email=zerben%40ppsuc.edu.cn&submit=submit

用户点击后就可以完成修改

成功

二、csrf(post)

同样,登录lili的账号,点击修改

查看审查元素发现是post传参

这里的攻击方式跟XSS中POST类型是一样的,攻击者可以搭建一个站点,在站点上做一个表单,诱导lucy点击这个链接,当用户点击时,就会自动向存在CSRF的服务器提交POST请求修改个人信息。

编写一个post.html页面,本文把此页面放到 Kali 的/var/www/html/pikachu/doge_csrf下,然后启动 apache 服务

之后只需要把构造的URL发送给受害者,让其点击就可以完成目标操作,成功修改信息。

url:

http://192.168.171.129/pikachu/doge_csrf/post.html


<html>
<head>
<script>
window.onload = function() {
document.getElementById("postsubmit").click();
}
</script>
</head>
<body>
<form method="post" action="http://192.168.171.133/pikachu/vul/csrf/csrfpost/csrf_post_edit.php">
<input id="sex" type="text" name="sex" value="girl" />
<input id="phonenum" type="text" name="phonenum" value="12345678922" />
<input id="add" type="text" name="add" value="hacker" />
<input id="email" type="text" name="email" value="lucy@pikachu.com" />
<input id="postsubmit" type="submit" name="submit" value="submit" />
</form>
</body>
</html>

三、csrf(token)

目前没有好的方法可以绕过

 

WEB攻击与防御技术 pikachu——XSS攻击加CSRF的更多相关文章

  1. 如何发起、防御和测试XSS攻击,我们用DVWA来学习(上)

    XSS 全称Cross Site Scripting 即‘跨站脚本攻击’. 从其中文释义我们能直观的知道,这是一种对网站的攻击方式. 其原理在于,使用一切可能手段,将可执行脚本(scripting)植 ...

  2. Web安全攻防(一)XSS注入和CSRF

    跨站脚本攻击(XSS) XSS(Cross Site Scripting),为不和层叠样式表CSS混淆,故将跨站脚本攻击缩写为XSS. 攻击原理: 恶意攻击者往Web页面里插入恶意Script代码,当 ...

  3. 常见【十种】WEB攻击及防御技术总结

    最近参加了一个WEB安全培训,感觉WEB攻击跟防御都是挺有意思的.以下总结比较简短,仅供观赏哈. 一.XSS攻击 [介绍] xss攻击是跨站脚本攻击,例如在表单中提交含有可执行的javascript的 ...

  4. web攻击之零:WEB攻击及防御技术汇总

    一.XSS攻击 [介绍] xss攻击是跨站脚本攻击,例如在表单中提交含有可执行的javascript的内容文本,如果服务器端没有过滤或转义这些脚本,而这些脚本由通过内容的形式发布到了页面上,这个时候如 ...

  5. 关于Web安全的那些事(XSS攻击)

    概述 XSS攻击是Web攻击中最常见的攻击方法之一,它是通过对网页注入可执行代码且成功地被浏览器执行,达到攻击的目的,形成了一次有效XSS攻击,一旦攻击成功,它可以获取用户的联系人列表,然后向联系人发 ...

  6. web 安全问题(二):XSS攻击

    上文说完了CSRF攻击,本文继续研究它的兄弟XSS攻击. 什么是XSS攻击 XSS攻击的原理 XSS攻击的方法 XSS攻击防御的手段 什么是XSS攻击 XSS攻击全名(Cross-Site-Scrip ...

  7. WEB安全实战(五)XSS 攻击的第二种解决方式(推荐)

    序 说到 XSS 攻击,前边已经有两篇文章在讲这个事了,这次又拿出来说,主要是针对近期工作中的一些新的问题.那么之前是怎么解决问题的呢?为什么又要换解决方式?以下就具体的跟大家分享一下. 旧方案 公司 ...

  8. 如何发起、防御和测试XSS攻击,我们用DVWA来学习(下)

    上一篇我们了解了XSS攻击的原理,并且利用DVWA尝试了简单的XSS攻击,这一篇我们来实现更复杂的攻击,然后探讨防御机制和测试理念. 前面我们通过脚本注入让网页弹出了用户cookie信息,可以光弹窗是 ...

  9. 程序员常用的3大Web安全漏洞防御解决方案:XSS、CSRF及SQL注入(图文详解)

    https://blog.csdn.net/ChenRui_yz/article/details/86489067 随着互联网的普及,网络安全变得越来越重要,程序员需要掌握最基本的web安全防范,下面 ...

  10. XSS攻击常识及常见的XSS攻击脚本汇总

    一.什么是XSS? XSS全称是Cross Site Scripting即跨站脚本,当目标网站目标用户浏览器渲染HTML文档的过程中,出现了不被预期的脚本指令并执行时,XSS就发生了. 这里我们主要注 ...

随机推荐

  1. com.mysql.cj.jdbc.exceptions.CommunicationsException

    mysql数据库链接空闲一段时间后就会关闭连接,但是我们的java程序依然持有该连接的引用,对已经关闭的数据库连接进行操作就会引发上述异常. 解决办法: 1.增大mysql数据库的wait_timeo ...

  2. 记:java.lang.IllegalArgumentException: DAY_OF_MONTH 报错

    查询的时候报错: 月份中的天数错误 原因:  date日期列中有数据错误 修改数据库中错误的数据就可以了.

  3. vue 中的 .sync 修饰符 与 this.$emit('update:key', value)

    vue 中 .sync 修饰符,是 2.3.0+ 版本新增的功能 在有些情况下,我们可能需要对一个 prop 进行"双向绑定".不幸的是,真正的双向绑定会带来维护上的问题,因为子组 ...

  4. main(调用一个公共组件)

    app.vue <template> <div> <Student/> <School></School> </div> < ...

  5. oracle abs ap 银行账号 组织层 新增api

    DECLARE l_return_status VARCHAR2(1); l_msg_count NUMBER; l_msg_data VARCHAR2(1000); x_acct_use_id nu ...

  6. NSQ(6)-nsq相关策略

    1:nsq的流量控制 RDY 消息中间件的实现无非两种套路,一种让客户端pull,典型的比如kafka便是如此,而另一种则是push,也就是让客户端不需要做任何操作,只需要做好conn便可以源源不断收 ...

  7. recastnavigation计算三角形离给定点最近位置方法简单注释

    三角形 在recastnavigation中,三角形是最基础的元素,很多逻辑都是基于三角形进行的,其中比较常见的一个操作就是计算指定点到某三角形上的最近距离.由于三角形通常代表行走面,而给定点P可能是 ...

  8. nginx4层代理ssh服务

    四层代理依赖模块ngx_stream_core_module,默认情况下,此模块不构建,应使用配置参数启用 --with-stream 配置文件内容: ... stream { upstream ss ...

  9. VisualSvn-Server搭建

    一.安装VisualSvn-Server 1.安装向导 2.同意许可 3.选择组件 4.选择版本(选择"标准版本",企业版需要收费) 5.服务器设置 6.安装 7.安装中 8.安装 ...

  10. uniapp 离开界面清除计时器

            onLoad() {             // APP启动引导图逻辑判断显示             if (uni.getStorageSync("startImgSt ...