[极客大挑战 2019]Havefun、[ACTF2020 新生赛]Include、[SUCTF 2019]EasySQL 直接给出了flag?尝试了一下结果是一个假的flag,然后我们分析源代码很容易看出我们通过GET方式给cat传一个值,如果cat的值为dog就输出flag,这很简单了我们通过get方式给cat传一个叫dog的值我们就能获得flag,payload如下。返回包的长度为523的是可以使用的而其他是不可以的,既然;继续解题,输入非零数字得到结果一直是1而输入其他字符的数据就得不到回显猜测内部sql语句为。判断是什么闭合输入1#有回显,而1’和1‘#均没有输出,感觉是数字型sql注入。这时我们注意url的变化。
[RoarCTF 2019]Easy Calc、攻防世界 ics07、[极客大挑战 2019]EasySQL 利用点就在上面这串代码中,这里先把文件名拼接到backup目录下,然后正则匹配,这里正则的意思是:匹配最后一个点后面的后缀,然后下面的else里面又更改了当前目录。然后通过POST方式写入con和file,一个为文件内容一个为文件路径,又因为有正则匹配的过滤,我们将文件名取名为5.php/.,又因为这是Linux操作系统所以可以解析那么接下来我们上传文件即可。通过这段代码发现只需要result有值我们就可以上传文件了,一开始我的思路是通过sql注入完成但是失败了,这时候我们看一下sql查询的条件。
hitcon_2017_ssrfme、[BJDCTF2020]Easy MD5、[极客大挑战 2019]BuyFlag 这里查一下md5函数,当存在参数true时,使用原始16字符二进制格式,找到ffifdyop字符串经过MD5哈希之后,会变成276f722736c95d99e921722cf9ed621c,mysql会把hex当作Ascii码来解释所以这几个字符相当于:’ or '6xxxxxxx。在这里需要通过Post方式传入两个值,并且这两个值要求不相等且md5加密后要全等,这就又有个矛盾了,这里有嘚用一次md5弱类型比较,给这俩个值当成数组赋值这样一来就能成功绕过(如果这里不懂md5弱类型比较建议百度一下。
[ZJCTF 2019]NiZhuanSiWei、[ACTF2020 新生赛]BackupFile、[WUSTCTF2020] 朴实无华 我们使用head命令将fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag读出,空格使用$IFS$9来绕过空格。会先将字符串转化为整数然后再进行比较。这个地方考察的md5弱类型比较,通过弱类型比较,与md5加密后的值相等,即可绕过,这里绕过也很简单我们找到以0e开头的字符串,加密后还是以0e开头即可在弱类型比较时均转换成整数0。
攻防世界 cat、Confusion1、lottery 进入题目是一个类似于买彩票的东西我们先去注册个账号,然后发现可以buy flag,大概理解题目意思,我们要么只能在买彩票的时候让我们中大奖要么只能改变自己的余额,原题目应该使用dirsearch扫描发现git泄露然后使用Githack复原的但是攻防世界这边直接把源码给了我们。django项目下一般有个settings.py文件是设置网站数据库的路径,所以我们去读取settings文件,这里需要注意django项目生成时settings.py会存放在以项目目录下再以项目名称命名的文件夹下面。
vulnhub Hackathon2渗透笔记 靶机下载地址:https://www.vulnhub.com/entry/hackathonctf-2,714/kali ip地址:192.168.20.130。
攻防世界web2、ddctf_2019_homebrew_event_loop、 [网鼎杯 2018]Fakebook num_items传入队列执行执行的是consume_point_function(num_items)如果session[‘num_items’]>=5那么就执行trigger_event,我们再去看一下trigger_event是干什么的。如果我们直接调用buy_flag(5)。先将buy_flag(5)执行。这里execute_event_loop起到路由功能。然后执行对应的函数。execute_event_loop函数。作用是判断session中的points是否小于我们想要购买的数量。
攻防世界 favorite_number mfw、[BJDCTF2020]ZJCTF,不过如此 这里发现一个assert()函数,想到估计是代码执行漏洞,而$page没有任何的控制直接拼接,我们想利用assert()函数执行cat ./templates/flag.php获得flag,那么肯定要破坏原来的assert结构才能,使得我们目标才能达成。审计代码发现,通过POST方式传一个数组,传入的数组的内容必须与array数组内容全等,但这里有个矛盾,需要传入的数组的第一个元素不能为admin,但array数组的第一个元素就是admin,这里就要利用数组溢出漏洞了,使用如下payload。
kali wpscan无法更新数据库解决方案 然后我们去/var/www/html/wpscan_6666/wpscan中将所有文件移到上一层目录中。被这个问题折磨了一个多小时……找了很多方法最后只发现这种方法可行。赋予脚本执行权限并且开启kali apache服务并且执行脚本。首先在任意位置编写一个自动安装脚本,脚本内容如下。然后再执行如下指令即可完成更新。看到这张图时恭喜已经更新完成。
vulnhub THE PLANETS: EARTH渗透笔记 靶机下载地址:https://www.vulnhub.com/entry/the-planets-earth,755/#downloadkali ip地址。
BMZCTF ssrfme 端午节就该吃粽子 pchar??? 空格等特殊字符如果不进行编码,服务器在处理的时候可能出现问题,通过浏览器的方式访问的话,空格会自动编码为%20或者+,但我们通过上述方法嵌套参数,让服务器自己去请求http的时候就会出现问题,解决方法是进行二次编码。因为第二点说了web服务器默认就会对解析后的参数进行url解码,所以php最开始解析我们的参数时进行了一个解码,服务器通过http伪协议去访问时又会对解析后的参数进行一次解码,所以我们可以进行二次编码。|拼接执行指令\绕过对cat的匹配${IFS}绕过对空格的匹配,?并且长度不能大于70。
攻防世界 ics-05 此处存在preg_replace函数,感觉会存在命令注入漏洞,函数作用:搜索subject中匹配pattern的部分,以replacement进行替换。此处考察的是preg_replace函数使用/e参数导致代码执行的问题。也就是说,pat值和sub值相同,rep的代码会执行。并且没有对pat参数进行过滤,所以这里我们可以传入"-e"触发漏洞。我们重点来观察url发现这里可能存在文件包含,我们使用伪协议读取看看。进入题目依旧是这个场景我们去设备维护中心看看。开始审计代码简单看了一下之后发现利用点在这里。
vulnhub Deathnote渗透笔记 靶机下载地址:http://www.vulnhub.com/entry/deathnote-1,739/此题如果要用vmware打开需修改网卡配置操作如下在这个页面按e,修改下图配置为按f10保存退出然后我们使用nano 编辑/etc/network/interfaces文件内容按下ctrl+x会提示你是否保存按下Y重启虚拟机即可kali ip。