![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
攻防世界
文章平均质量分 58
sleepywin
这个作者很懒,什么都没留下…
展开
-
web:NewsCenter
是因为单引号与服务端代码中的’形成闭合,输入的字符串hello包裹,服务端代码后面多出来一个‘导致语法错误,而加入#将后面的’注释掉之后不会报错,可确定为字符型SQL注入。,可判断注入为字符类型注入。说明union后的第2、3列被显示出来,因此我们可以利用这两列获取当前数据库、当前数据库所有列表名、列表所有字段名。页面有个输入框,猜测是sql注入,即search为注入参数点,先尝试一下。获得列名为fl4g可能存放着flag。读取文件,获得flag。原创 2023-11-29 00:23:49 · 96 阅读 · 0 评论 -
WEB:xff_referer
直接在请求头里添加,然后重放后显示内容为。原创 2023-08-03 15:40:41 · 116 阅读 · 0 评论 -
WEB:mfw
由代码审计可知,file_exists() 函数还会检查我们传入的page拼接后是否存在,在之前的githack下载文件中,templates文件夹中有四个php文件,只要传入的不是这4个,就会执行die函数,输出 That file doesn't exist!传入的page中不能有'..',使strpos()函数返回false,和右边的false相等。payload的前半段可以是存在的文件也可是不存在的文件。只需要前半段返回的是false,执行or后面的即可。这里页面里有Git,猜测是Git泄露。原创 2023-07-31 21:48:32 · 543 阅读 · 2 评论 -
WEB:php_rce
打开页面,页面显示为thinkphp v5的界面,可以判断框架为thinkPHP,可以去网上查找相关的漏洞。由题目可知,php rec是一个通过远程代码执行漏洞来攻击php程序的一种方式。由页面提示可知,flag储存在flag文件下的flag文件中。thinkPHPv5漏洞。因为不知道是php版本几,先尝试一下。使用thinkPHP 5.1的漏洞。用cat命令读取flag。提示为5.0.2版本。原创 2023-07-30 14:09:17 · 953 阅读 · 0 评论 -
WEB:web2
的步骤,对 $miwen 进行相反的操作,即先使用 str_rot13 还原,然后使用 strrev 翻转,再使用 base64 解码,由上述可知,这段代码定义了一个函数encode,接受一个字符串参数$str,并返回对其进行加密后的结果。这个算法是一种经典的简单加密方法,可以用来隐藏字符串的真实含义。str_rot13 是一个简单的字符替换算法,将。,再进行翻转即可得到 flag。原创 2023-07-28 23:36:39 · 479 阅读 · 0 评论 -
WEB:unseping
所以我们可以将cat flag_1s_here/flag_831b69012c67b35f.php先进行ascii编码后在进行8进制转化。发现了一个带有flag的php文件,用cat抓取这个文件的源码就可获得flag,但是代码会过滤掉/,之前说的方法不适用于/。并将a序列化然后赋值给b,输出b,并将b进行base64编码。上述所总,通过$method和_construct来调用构造的ping方法,通过$args作为输入口进行命令的输入。该方法的结构为将输入参数作为外部命令进行执行,并返回输出结果。原创 2023-07-27 20:45:48 · 536 阅读 · 0 评论 -
WEB:file_include
根据filter的绕过方法,可以使用iconv过滤器进行,这个过滤器需要 php 支持 iconv,而 iconv 是默认编译的。eg.convert.iconv.UCS-4*.UCS-4BE ---> 将指定的文件从UCS-4*转换为UCS-4BE 输出。这里并不清楚input-encoding和out-encoding具体是什么,可以简单猜想一下尝试,然后用bp抓包进行爆破。由题目可知这个是文件包含的题目,先用常用的协议先查看一下。先设置尝试的payload。iconv支持的字符集有。原创 2023-07-27 00:06:12 · 227 阅读 · 0 评论 -
WEB:easyphp
array_search()没有设置strict参数(如果该参数被设置为 TRUE,则函数在数组中搜索数据类型和值都一致的元素),我们就可以用。array_search保证非0下标元素含0就行,字符串转数字都是0。,0 == 'DGGJ'又0===='DGGJ'为false。绕过is_array和array_search函数。可以使用%00绕过is_numeric函数。编写MD5碰撞脚本得到b=53724。可用科学计数法绕过 a=1e9。要绕过is_numeric函数。或构造payload。原创 2023-07-25 14:59:51 · 503 阅读 · 0 评论 -
WEB:ics-06
选择了日期范围但是毫无反应,这里发现url中有一个id=1,尝试抓包爆破。所有都尝试点了一遍,只有报表中心可以打开。先查看源代码,没有发现有用的信息。设置有效载荷配置,开始爆破。将id=1改成id=2333。burpsuite的使用。原创 2023-07-25 14:34:32 · 53 阅读 · 0 评论 -
WEB:ics-07
如果传入的参数page的值不是index.php,则包含flag.php,否则重定向到?mysql_real_escape_string() :转义 SQL 语句中使用的字符串中的特殊字符。fwrite () 函数:向文件写入字符串,成功返回写入的字符数,否则返回 FALSE。mysql_fetch_object() :从结果集(记录集)中取得一行作为对象。show_source()函数:对文件进行语法高亮显示。chdir() 函数:改变当前的目录,需规定新目录。floatval():返回变量的浮点值。原创 2023-07-24 23:19:02 · 216 阅读 · 0 评论 -
WEB:wife_wife
看了这部分源码能判断出,如果这个登陆的对象里,isAdmin的属性是true,那就证明是一个管理员,如果是普通注册的用户,isAdmin属性是false。查看源代码才知道,后端没有数据库,所以sql注入是不可能的。重新注册然后用bp进行抓包,根据上述思路,直接污染即可。到最后我也没有成功拿到flag,后面复盘一下步骤。这里不知道邀请码,所以没有勾选。重新整理思路,进行原型链污染测试。先尝试一下,注册了管理员账号。这里借鉴其他大佬的思路。原创 2023-07-23 22:45:48 · 254 阅读 · 0 评论 -
WEB:ez_curl
第一点:来自源代码的这一行。当我们传入的参数超过1000个时,之后的参数会被舍弃掉。于是这里我们最开始发个"admin":"t"设置好admin的值,加上999个没用的参数,把程序拼接的&admin=false挤掉,即可绕过过滤。第二点:header 字段可以通过在每一行前面至少加一个SP 或 HT 来扩展到多行。以此绕过对 headers 的过滤。打开题目发现,进行代码审计。原创 2023-07-21 15:07:59 · 409 阅读 · 0 评论 -
WEB:题目名称-文件包含
用 bp爆破,暴力破解 intruder 模块有个“cluster bomb” (集束炸弹)模式,可以把上面所有的 16 个字符集格式做一个笛卡尔积,生成 256(16 *16)个请求。",可以推测 "base64" 字符串在黑名单里。,比如 iconv("ASCII", "UTF-8", $string),也就是说。convert.iconv 相当于用了 iconv() 函数,这个函数是。,拿到数据之后,再把它的字符集转回来就行了。构造payload尝试读取flag.php。爆破完成后可发现flag。原创 2023-07-19 15:06:02 · 557 阅读 · 0 评论 -
WEB:FlatScience
(说的就是在他的论文里面)所以得到ThinJerboaSalz!还要去掉Salz,则密码为。一个一个访问并查看源代码,在查看login.php发现。python3识别PDF内容并进行密码对冲。构造查询password的payload。剩下的目录就是一些pdf格式的论文了。再输入,回显正常,所以可知字段数为2。经过上述操作就得到了表中的第一个数据。构造查询name的payload。构造查询hint的payload。发现数据库为SQLite3。原创 2023-07-19 12:20:39 · 292 阅读 · 0 评论 -
WEB:Confusion1
根据网站图片和题目描述的提示,大象是php,蟒蛇是python,说明了这个网站是用python写的。没有思路,先点login和register页面看看。之前猜测是ssti漏洞,先验证。替换payload为。原创 2023-07-18 17:20:41 · 1346 阅读 · 0 评论 -
WEB:Cat
127.0.0.1&&dir、127.0.0.1&&ls、127.0.0.1|ls均被屏蔽,但经过尝试可知,网站使用的是。可以从配置文件settings.py的报错中看看有没有database的相关信息。使用ctrl+f查找database、settings等。根据前面发现的数据库路径,构造payload。先ping一下,输入127.0.0.1。的操作,但是经过尝试之后并不能正常执行。报错后出现一大长串的代码,只能代码审计。的编码的时候就会得到错误信息。原创 2023-07-18 16:11:02 · 163 阅读 · 0 评论 -
WEB:shrine
注册了一个名为FLAG的config,猜测这就是flag,如果没有过滤可以直接{{config}}或 {{self.dict}}即可查看所有app.config内容,但是这题设了黑名单[‘config’,‘self’] 并且过滤了括号。来获取当前的app,目标是app.config[‘FLAG’]。current_app意思应该是当前app,那就当前app下的config。模板渲染接受的参数需要用两个大括号括起来{{}},所以我们需要在大括号内。首先看是否存在注入{{1+1}}原创 2023-07-18 14:39:22 · 228 阅读 · 0 评论 -
WEB:easytornado
再进行一次加密: f2e27986-f7b3-4d65-9f08-e63dfccd4edc3bf9f6cf685a6dd8defadabfb41a03a1。得到d4326471-bd08-4d3b-af91-67fb1ecd89a03bf9f6cf685a6dd8defadabfb41a03a1。得到cookie_secret:f2e27986-f7b3-4d65-9f08-e63dfccd4edc。/flllllllllag这个文件,估计是flag。发现加密方式是MD5值是。发现了render,r。原创 2023-07-17 23:15:14 · 122 阅读 · 0 评论 -
WEB:lottery
其中win_numbers中的数字是随机生成0-6的数字,然后和用户输入的数字进行比较如果达到几个相同就返回对应的奖金给他,这里可以。原题目应该使用dirsearch扫描发现git泄露然后使用Githack复原的但是攻防世界这边直接把源码给了我们。dirsearch扫描。使用bp修改post参数购买flag。打开文件后进行代码审计。把post数据修改为。原创 2023-07-17 16:42:33 · 78 阅读 · 0 评论 -
WEB:warmup
1. 漏洞利用点是include命令了,会包含传进来的file参数,但是它会对file参数中?之前的字符串进行限制。如果构造payloadfile=source.php?ffffllllaaaagggg,发现并没有flag显示出来。2. hint.php也在白名单中,可以访问该文件看是否存在什么有效的信息。进行处理,构造payload,注意这里ffffllllaaaagggg。访问一下source.php,有如下代码,进行代码审计。f12和查看源代码都试一下,查看源代码发现如下图。打开链接后只有一张图片。原创 2023-07-16 17:40:48 · 474 阅读 · 0 评论 -
WEB:supersqli(多解)
背景知识 sql注入 堆叠注入题目输入款默认1,先输入1,页面正常显示再输入1',显示报错加上注释符号#或者--+或者%23(注释掉后面语句,使1后面的单引号与前面的单引号成功匹配就不会报错)页面回显正常,那么闭合符号就是单引号。输入 1#判断类型,查询1 and 1=1 和1 and 1=2,发现两次提交后页面一样,可以判断出为字符型注入漏洞;使用万能注入语句1' or 1=1#回显不正常,存在注入原创 2023-07-16 14:34:00 · 936 阅读 · 0 评论 -
WEB:Web_php_include(多解)
解题原创 2023-07-16 13:23:59 · 1181 阅读 · 0 评论 -
WEB:Web_php_unserialize
而正则匹配的规则是: 在不区分大小写的情况下 , 若字符串出现 “o:数字” 或者 "c:数字’ 这样的格式 , 那么就被过滤 .很明显 , 因为 serialize() 的参数为 object ,因此参数类型肯定为对象 " O " , 又因为序列化字符串的格式为 参数格式:参数名长度 , 因此 " O:4 " 这样的字符串肯定无法通过正则匹配。是在反序列化操作中起作用的魔法函数,当unserialize的时候,会检查时候存在__wakeup()函数,如果存在的话,会优先调用__wakeup()函数。原创 2023-07-15 20:43:20 · 1162 阅读 · 0 评论 -
WEB:command_execution
再使用linux系统下的cat命令查看flag.txt文件内容。显示ls可以被运行,寻找文件名包含flag的文件。用&&将其截断,并用试一下ls命令能不能运行。先尝试ping一下主机。原创 2023-07-15 19:49:49 · 120 阅读 · 0 评论 -
WEB:upload1
用bp进行拦截后,修改为php后缀,上传成功。一般在网站根目录找找就能找到flag。访问一下有没有上传成功。然后修改后缀名为jpg。原创 2023-07-15 17:41:30 · 212 阅读 · 0 评论 -
fileclude
file2被放入file_get_contents()函数,且要求返回值为hello ctf。file1是要包含的文件,放在。可以用hackbar或者bp。所以最终的payload为。得到base64编码。原创 2023-07-14 18:20:47 · 681 阅读 · 0 评论 -
fileinclude
用bp抓包修改cookie值直接在下面添加payload得到base64编码解码可得flag。原创 2023-07-14 14:23:01 · 401 阅读 · 0 评论