- 博客(23)
- 收藏
- 关注
原创 php递归匹配以及无参数文件读取
1.php正则匹配-递归匹配例如:preg_replace('/[^\W]+\((?R)?\)/', '', $_GET['code'])其中[^\W]+ 表示任意的字符和数字以及下划线,匹配1次或者多次然后是匹配 "(" 一次然后是(?R)? 表示递归匹配 也就是表示当前的正则匹配pattern这整个式子,(?R)代表的是整个式子,而最后一个?表示的是给予这个递归一个终止信号,因为?可以表示0次或者1次,所以同样可以用*来代替。当然这里?以及*可能出现递归栈的不同。综上所述:该正则可以匹
2020-10-05 23:02:04 312
原创 2020.9.25学习小结
1int eregi(string pattern, string string)检查string中是否含有pattern(不区分大小写),如果有返回True,反之False。2.sql_mode()PIPES_AS_CONCAT将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样是,也和字符串的拼接函数Concat想类似ANSI_QUOTES启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符具体实现方法:set sql_mo..
2020-09-25 21:09:04 232
原创 buuctf-Ping Ping Ping
进来页面简单粗暴,就知道是个命令注入了:那没什么好说的,就一个个测试呗依据命令注入来看,最常见的是ls和pwd,发现均可以执行,发现在当前目录下存在一个flag.php以及index.php在未打开index.php之前发现:①没有过滤 ; | 以及||②过滤的内容有:" ",(),<>,\,/ 以及空格做到这里实际上我就卡住了,我尝试了各种方式譬如:%0,%00,\0,/0./**/,来绕过空格过滤发现都不行,接着去网上搜索了一下如何绕过bash的空格过滤...
2020-09-25 21:07:01 1846
原创 buuctf-secretfile
进来页面如下:目前图中所包含信息不多,所以f12打开,看到有一个链接,点进去:看到如下界面:然后中间的secret可以点击,但是点击之后会跳转,而且会提示我们没看到,这里就想到抓个包:抓包看到有一个.php文件:再接着过去访问一下,就看到了一串php代码:根据代码意思,我们需要的东西放在了flag.php文件里面,但是这边过滤了一些文件访问的协议,但是有一个协议没有被过滤就是php协议,所以构造如下payload:?file=php://f..
2020-09-25 15:27:50 434
原创 T-star高校挑战赛之文件上传
进来页面如下:然后就是去上传一下文件,打开burpsuite,抓包。首先上传内容是包含了一句话木马的jpg文件(6.jpg)被告知文件内容不正确:这边猜测是其检测了文件开头不符合要求,随即将开头改成GIF56a,发现文件上传成功:但同时被告知文件大小不正确,这边采取的方式是添加注释,将其大小变成20kb:成功上传,同时路径也被告知。接来下尝试上传php文件,经过测试php和php4以及php5是被过滤掉了,这里采用了Php即大小写绕过方式,成功将文件上传上去。
2020-07-01 10:33:34 307
原创 攻防世界-高手进阶区之mfw
进来页面如下:虽然在源码中找到了flag.php但是访问了是个空页面。然后在about中发现了一些好玩的:这大致猜测是git源码泄露了:然后用githack来获取内容:得到如下信息:虽然templates中也有内容,但是并不重要,在index.php中有一些特别的内容:在assert中会执行括号内的内容。所以可以利用assert函数的特性,来读取flag.php。构造page=abc') or system(cat /templates/flag.php)
2020-06-17 21:06:05 381
原创 攻防世界-高手进阶区之upload
进来页面如下:然后就是正常的去注册一个用户,并且登录,我在这里也做了拦截,但是并没有什么有价值的信息:登录进来之后是这样的一个页面,是文件上传(不过根据题目意思也是肯定可以知道的)。我在这边也做了测试,只能够上传jpg文件,想要尝试php4,php5,php文件后缀都是不可以的。然后我就在考虑是否是文件后缀截断上传,但是抓包截取内容之后并没有返回文件上传到哪里了,同时nikto和dirb扫描也没有发现什么有价值的信息。接下来的话,就是看别人的wp了。不过说真的,第一次接触到.
2020-06-12 14:38:20 650
原创 攻防世界-高手进阶区之ics-05
进来页面是:然后用nikto 扫描了一下:它提示说是任何一个攻击者都可以任意读取文件:那么就尝试一下读取页面源码:index.php?page=php://filter/read=convert.base64-encode/resource=index.php然后就去转码一下得到了:<?phperror_reporting(0);@session_start();posix_setuid(1000);?><!DOCTYPE HTML>
2020-06-12 00:02:50 326
原创 攻防世界-高手进阶区之ics-04
进来页面是这样的:注册页面:我们就尝试随便注册一个用户,然后登陆发现没啥用:这里还有一个忘记密码可以点击:可以猜测这里有没有注入漏洞:我注册的用户名为1,然后去试试 1’ and 1=1# 以及 1' and 1=2# ,发现是存在注入漏洞的。然后就去判断字段数以及那个字段是有回显的,1' order by 4# 可以显示,然后-1’ union select 1,2,3,4:3的位置是回显位置,接下来就是去找数据库名:-1' union select .
2020-06-11 23:01:57 827
原创 攻防世界-高手进阶区之web2
进来页面是一串php代码:已经告诉我们解密miwen就可以了。总体思路是先rot13加密,然后base64解码,再askll码-1,然后逆序输出用python写个脚本:#!/usr/bin/env python # -*- coding:utf-8 -*-import base64str_rot13="n1mYotDfPRFRVdEYjhDNlZjYld2Y5IjOkdTN3EDNlhzM0gzZiFTZ2MjO4gjf"str_base64="~88:36e1bg8438e4
2020-06-11 22:03:06 468
原创 学习笔记 强网杯-随便注
set @b=concat("sel","ect flagfrom `1919810931114514` ");PREPARE:准备一条SQL语句,并分配给这条SQL语句一个名字供之后调用prepage hello from @b;EXECUTE :执行命令execute hello;即可在过滤了select的时候执行select命令...
2020-06-11 21:33:48 255
原创 python json.dumps()自动排序解决办法
由于在开发过程中,从后端查询出来的数据和json.dumps()方法出来的字段顺序不同,导致前端的动态表格创建顺序错误,所以需要在json格式化的时候不让其自动排序。这里自动排序的原因大致是因为dict本身是一个对象,所以在其在格式化的时候自动排序是很正常的。这里给出python解决自动排序的方法:json.dumps(dict,sort_keys=False)dict指的是从数据库查询出来的数据...
2020-06-11 20:24:59 5120
原创 攻防世界-高手进阶区之Fakebook
进来页面看到的是这样的东西:然后先去随便点一下看看东西,这里有个join,想要注册一下内容,但是这个blog的格式不对的话就没办法join这里就暂时没有什么思路了。接下来去看看目录有哪些东西:用kali的dirb或者nikto:里面有一个bak文件,下载下来解压看一看:然后大致查阅了一下内容,是说创建user然后从url里get信息,同时blog有一个正则匹配,需要有https://(可有可无),然后是数字和字符,加一个. 然后是2-6个字母,所以随便构造一个h.
2020-06-11 20:19:58 850
原创 攻防世界-高手进阶区之bug WP
创建靶机进来之后是这样的一个页面:然后简单尝试一下弱密码之类的登录,无果。接下来去注册一个账号试试:然后再尝试一下用这个注册的账号登录进去:进来的页面是这样子的。然后就去点一点各个模块,发现在点击manage的时候,提示说我们不是admin:那大概就是猜测,用户名是admin,然后要去找密码了。现在发现这边还有一个模块是修改密码的,然后尝试一下抓包看看是什么东西:看到并没有什么我们想要的东西,之前关注在注册模块下面还有一个findpd模块,..
2020-06-11 10:26:43 1751
原创 kali安装docker
使用以下命令即可:curl -fsSL http://mirrors.zju.edu.cn/docker-ce/linux/debian/gpg|sudoapt-key add -echo'deb http://mirrors.zju.edu.cn/docker-ce/linux/debian/ buster stable'|sudotee/etc/apt/sources.list.d/docker.listsudoapt-get updatesudoapt-getin...
2020-05-16 19:48:45 357
原创 渗透靶机测试--billu_b0x2--学习笔记
最近找了几个渗透靶机来玩玩,主要目的是为了获取root权限。这次的靶机名字是billu_b0x2,下载地址攻击机ip:192.168.6.128靶机 ip:192.168.6.1321.打开目标靶机,正常用nmap扫描一下目标靶机的ip, 使用命令 nmap -sP 192.168.6.0/24 可以找到目标靶机的ip地址为192.168.6.1322.寻找靶机开放端口 使用命令 nmap -p- -A -T4 192...
2020-05-14 14:54:10 953
原创 layui弹出层+联动下拉框
本人最近在做前端开发项目,用到了layui框架。其中在弹出层,弹出内容为表单,表单中有联动下拉框的时候遇到了不小的问题。搜遍了百度,社区均无果,好在在社区提问了之后,有个兄弟及时帮我解决了问题。在此特别感谢一下他!!!要不是他我的实习进度要拖太久了。这边记录一下在开发弹出层+联动下拉框的时候遇到的一些问题吧1.由于我的表单中的是放在<body>之外的,这里参考的是la...
2020-04-02 10:19:30 2963 5
原创 关于layui中动态添加的select获取value和text的说明
在一次实习中,使用了layui做前端,flask用于后端的工作。在layui弹出层中,弹出了一个form表单,在表单中需要使用联动下拉框。但是遇到了一个小问题,就是在动态添加了option之后,无法正确获取value和text。使用网上的方法1.var data=$("#lay-filter").val()2.var myselect=document.getElementBy...
2020-03-29 14:12:44 2265
原创 学习笔记10.25-11.1
php:1.sql约束攻击约束SQL注入的原理就是利用的约束条件,比如最长只能有15个字符的话,如果你输入的是abcdefghijklmnop(16位),那么保存在数据库里的就是abcdefghijklmno,那么别人用abcdefghijklmno注册一个用户名,就可以登陆。还有一个可以利用的地方就是SQL在执行字符串处理的时候是会自动修剪掉尾部的空白符的,也就是说"abc"=="abc ...
2019-11-06 23:10:51 291
原创 学习笔记11.6
sql注入笔记:1.order by (数字)、列名称 ---->排序数字指的是按照第几列进行排序,如果数字超过表的最大列,那么就会报错。asc升序(默认),desc(降序)2.union(默认选取不同的值) 如果允许重复,则使用union all------>联合查询union内部的每个select语句必须拥有相同数量的列。union结果集中的列名总是等于union...
2019-11-06 23:06:08 152
原创 学习笔记10.18-10.22
php:1.extract()将数组键名做变量名,数组键值做变量值,针对每个元素在当前符号表创建一个对应的变量第一个参数为array,第二个参数为type,表示发生变量名冲突时的解决办法2.===表示全等于,变量值和类型完全一致==表示两个数的值一样,弱比较,100==‘100’因为值一样都是100,所以为true3.sha1()函数,计算SHA-1散列4.strcmp函数...
2019-10-23 23:57:25 280
原创 ctf-学习笔记10.15-10.17
最近在做ctfweb题,在bugkuctf平台上,不知道最近实验吧发生了什么。记录一下10.15-10.17号的学习笔记吧php方面:1.strstr()函数:echo strstr("hello world!","world");查找world,在hello world中是否存在,如果在,返回该字符串及后面剩余部分2.substr函数()类似于string的查询subs...
2019-10-17 19:58:45 640
原创 Bugkuctf-变量1
写在前:最近开始记录我的ctfweb的学习笔记,顺便记录一下学习到的Wp。Bugkuctf题目,变量1这里涉及了几个知识点:1.eval()函数eval函数,可以将括号内的字符串变成php代码执行,前提是括号内的内容以分号结尾;如果代码解析错误,则会返回false。2.var_dump()函数将显示一个或多个表达式的值,包括表达式的类型和值,数组会递归展开。点...
2019-10-17 19:46:41 1165
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人