MISC-NTA
Intro to Network Traffic Analysis (hackthebox.com) 基础介绍OSI 协议数据单元(PDU) TCP三路握手TCP确保数据从服务器传递到客户端的方法之一是会话的利用率。这些会话是通过所谓的三方握手建立的。为了实现这一点,TCP在TCP标头中使用了一个名为flags的选项。我们现在不会深入研究TCP标志;要知道,我们将在三方握手中看到的常见标志是同步(SYN)和确认(ACK)。当主机请求通过TCP与服务器进行对话时; 客户端发送SYN标志设置为开启的数据包,以及TCP报头中的其他可协商选项。 这是一个同步数据包。它将只在来自主机和服务器的第一个数据包中设置,并通过允许两端就开始通信的序列号达成一致来建立会话。 这对于数据包的跟踪至关重要。除了序列号同步,在这..
Read moreDVWA
前言都只尝试审计一下高难度,顺带练习一下代码审计工具,这里impassible难度是已经防御好的,high是高难度,我们主要关注这两个部分的源码 Brute Force暴力破解,感觉没什么好审的,还是看看源码: prepare( 'SELECT failed_login, last_login FROM users WHERE user = (:user) LIMIT 1;' ); $data->bindParam( ':user', $user, PDO::PARAM_STR ); $data->execute(); $row = $data->fetch(); // Check to see if the user has been locked out. if( ( $..
Read morejava反序列化前瞻
前言给java反序列化上个引子,顺带把webgoat代码审计结束了 本来要开始学链子了,但是网警和技侦要开始考试了,打算突击一下ctf和代码审计,下个月在正式学习java反序列化 Java 流(Stream)、文件(File)和IO | 菜鸟教程 (runoob.com) 序列化和反序列化 Java 序列化是一种将对象转换为字节流的过程,以便可以将对象保存到磁盘上,将其传输到网络上,或者将其存储在内存中,以后再进行反序列化,将字节流重新转换为对象。 序列化在 Java 中是通过 java.io.Serializable 接口来实现的,该接口没有任何方法,只是一个标记接口,用于标识类可以被序列化。 当你序列化对象时,你把它包装成一个特殊文件,可以保存、传输或存储。反序列化则是打开这个文件,读取序列化的数据,然..
Read more爬虫
概要这是大数据隐私保护课程的实验-自动化新闻采集,只是简单的实验和记录,不作深入研究 反爬虫机制 robots.txt IP封锁和频率限制 验证码 User-Agent检测 动态内容生成 Honypot技术 反反爬虫技术 rss谷歌新闻提供的rss,也就是xml的数据非常方便于信息采集: 半结构化的数据,但是谷歌有被反爬的风险 百度新闻 https://www.baidu.com/s?rtt=1&bsst=1&cl=2&tn=news&ie=utf-8&word=%E6%BB%91%E5%9D%A1 这里我们关注一下url的传参: rtt bsst cl tn ie word 找到返回的报文观察我们需要爬取的字段特征 beautifulsoupf..
Read moreWebGoat-CSRF
3这题模拟一个简单的csrf,从外源触发这个表单就可以得到flag: 抓包,然后使用插件制作一个payload,简单看一下: 相当于创建了一个表单,然后让他生成相同内容的请求包,但是这个表单显然比较初级,可以加入一些自动触发的dom事件在打开链接时自动触发提交表单,这里主要做代码审计,故不多做演示 打开burp pro比较麻烦,这里直接复制源码的表单元素,然后放到wolf触发: <form accept-charset="UNKNOWN" id="basic-csrf-get" method="POST" name="form1" target="_blank" successcallback=&q..
Read moreWebGoat-XSS
xss-7 这里直接点击购买看一下有哪些数据可以回显,然后发现是card number,然后在card number这个输入框注入代码: <scrpt>alert('xxx')</scrpt> or <scrpt>console.log('xxx')</scrpt> 源码部分: Java Pattern compile(String)用法及代码示例_pattern.compile_yinger553的博客-CSDN博客 写了一个正则匹配 这里我们可以看到field1也就是card number我们是可以控制的,并且只是简单的拼接没有经过过滤,而这里根据前后文来看他有一些html标签,说明前端会解析我们的字符串,我们必定是可..
Read moreWebGoat-Broken Access Control
IDOR-2 许多访问控制问题容易受到经过身份验证但未经授权的用户的攻击。因此,让我们从合法身份验证开始。然后,我们将寻找绕过或滥用授权的方法。 这里只是输入tom或者cat进行登录,进入下一题进行IDOR审查 IDOR-3 抓包看一看没有显示的属性 看一下源码: 我们发现他把不相关的信息一并返回了,实际 用的信息只有其中三个,而关于判定答案部分: 以,为分隔,检测答案是否为userid和role IDOR-4在另一个接口查看自己的profile 根据描述: 就概要文件而言,我们正在使用的应用程序似乎遵循RESTful模式。许多应用程序都具有提升用户可以访问另一用户内容的角色。在这种情况下,just/profile将不起作用,因为自己用户的会话/身份验证数据不会告诉我们他们想要..
Read moreWebGoat-XXE
关于xml、DTD从0到1完全掌握XXE | Drunkbaby’s Blog (drun1baby.top) XXE-4 这道题是标准的xxe注入,这里不多赘述,主要看看源码探究一下漏洞是如何导致的: 这里需要补充一个知识点: 组件使用总结:使用 JAXB 实现 XML文件和java对象互转 - 掘金 (juejin.cn) 关键点就是:当把 XML 格式的字符串传递给 Unmarshaller 接口转变成 Java 对象时,会解析一遍 XML,如果传入的值可控就会导致 XXE 注入攻击。 这道题实际是看返回的路径中是否包含系统的敏感路径,包含则为成功,这里真正引发xxe的点在parseXml中,我们进去看一看: 结合前面补充的知识,我们知道他进行了一次反序列化,将xml解析成java对象(这里是co..
Read moreWebGoat-Authentication_Bypasses_1
2FA这道题他先给了一个例子,https://henryhoggard.co.uk/blog/Paypal-2FA-Bypass 是一个绕过PayPal 2FA的案例,案例中把认证的问题字段抓包删除之后发送直接绕过了验证。
Read moreWebGoat-Sql
学习webgoat靶场的时候遇到一个有意思的sql注入 在这之前值得一提的是,sql的所有操作都会记录到access_log这个表中,如果可以堆叠注入,最后记得要清除这个表: 1';drop table access_log; -- - 然后是一道sql: 首先探测一下注入点 这里是实际是成功执行了查询,显示没有结果,所以没有注入点,否则应该会报错 这里比较扯,他说这个名字存在,但其实应该是注入生效返回了True 对密码进行测试的时候直接创建了,然而我两次输入的密码明明是不一样的,这里把握搞晕了。后来查看了一下博客发现我跑偏题了,username这里能进行注入,那么通过这个地方要么查询要么修改Tom的密码然后登陆 然后到了bool盲注的阶段,这里不再赘述了,只是个人经验不是很足,对这个回显..
Read more