实验二—构造Person类(函数) 然后是三个set方法,这里要注意,这个并不是我们用的setter,getter方法。而是我们定义的成员方法,用this来对其传参,格式如下。同样只需要构造方法,主函数已经被写入程序里面了。首先就是先定义一个person类,然后创建成员变量,使用无参构造方法,传入三个值。这里的print相当于成员方法,这里需要添加void,因为打印方法不需要返回值。然后根据题目,提供一个print函数打印信息。
实验一—-7-6 输出所有大于平均值的数 然后就是for循环,第一次我使用的是foreach循环,虽然可以输出平均数但是我忘了一个很关键的点就是foreach不可以改变变量的值,这导致我后来输出比平均数大的数总是为零。这里是先对n进行判断范围,确认在范围之后便是定义数组,声明和创建可以一起进行,类型记得要根据题目要求整数数组。因为我们将输入的n个整数要存入数组a中。意思是要获得输入的n 的整数,那么就要用到scanner input。随后就要对n进行判断其是否属于1~10,若属于程序继续进行,若不符合有效范围则输出”Invalid.”
实验一—7-5 用foreach求数组之和 随后因为要用foreach来遍历数组并输出数组中的所有元素的和,所以要先定义变量sum为0,int sum=0;然后是foreach将数组遍历,数组中的数是由我们输入input得到的。根据题的要求,首先要获得一个用户输入值作为数组长度。foreach不能改变对象值,但是for循环可以。最后打印出sum,再关闭scanner输入。首先要明白foreach的使用方法,
实验一—-7-4 统计正数和负数的个数然后计算这些数的平均值 附加if语句判断,根据题目要求,当输入为0时,停止程序。当输入大于0时,表明,多一个正数,即正++。接下来便要写输出函数了,先是判断正数加负数是否为零,若不为零,先定义一个求平均值的算法(AVE),打印正数个数,负数个数,再打印和,再打印平均值。因为最后结果要返回double型,所以要用强转,即AVE=(double)sum/(正+负)看题目要求,我们输入几个,可以是正数也可以是负数,但是输入0之后就不再获得输入值。ave = (double) sum / (正 + 负);int 负 = 0;
实验一—java判断直角三角形 注意看题目要求要求读取三个非零数值,并且因为是要作为三角形三边,那么我们就要使用高精度类型double类型来声明变量,先是scanner获取用户输入值。获得输入值之后就是判断是否构成直角三角形了,这里我使用的是三段一样的判断,并输出面积。最后不要忘记关闭scanner方法。//首先的引入import,然后就是搭主函数框架。
实验一—java输出一个月的天数 这道题最初我有两个思路,第一个是直接用笨办法穷举闰年和正常年份的每一个月的天数。这个方法比较简单我就不多赘述了,第二个方法则是先定义两个一维数组,并将闰年和正常年份的天数放进去,然后先是判断输入数据中的年份是否闰年即规定出数组,随机将月份天数对应数组数据输出,那么直接开写!
实验一--java判断是否偶数(函数) 一般这种遇到判断类的题都需要引入scanner和布尔型来解题,其中输入的数据型仍然是用声明,创建来命令。然后就是用简单的if语句来判断true或false了,如下所示。—定义的odd方法需要传参的data必须定义其类型!一般来说if,else是最易书写仅有两种情况的方法了。这道题只需要写它的函数方法。
实验一—java判断闰年 首先看到判断闰年的题,用Java来写先要考虑用Scanner获得一个输入值(注意要引用import,也可以让eclipse报错来自动引用)。使用Scanner之后便是经典步骤–声明创建。除此之外我们还注意到题目要求输出yes或no两种结果,那么我们首先便要想到用布尔型判断True or False,使用之前当然也要先定义嘛。最后不要忘记给scanner方法关闭输入,记得加上in.close。总结一下这道题的考察重点就是if判断和scanner方法的使用。然后就是很简单的if语句判断了。
php后端特性 在php中变量名字是由数字字母和下划线组成的,所以不论用post还是get传入变量名的时候,php会将怪异的变量名转换成有效的,在进行解析时会删除空白符,并将空格、+、点、[ 转换为下划线。但是用一个特性是可以绕过的,就是当 [ 提前出现后,[ 会转换成下划线,而后面的字符就不会再被转义了。所以这里传入的应该是?N[S.S=system(‘env’)&file=这是一种规范,当直接使用时则会导致一个问题无法使用。N_S.S等同于N[S.S。
伪协议配合回调函数写入命令 然后payload: GET v2=115044383959474e6864434171594473&v3=php://filter/write=convert.base64- decode/resource=1.php POST v1=hex2bin 最后访问1.php。//用来写文件进去,其中文件名参数是支持伪协议的,用于将第二个参数content进行过滤器后再写进文件里面去。v3得是一个文件把,写入一些命令执行的东西,那我们可以通过伪协议直接生成文件。当然这道题可以学到很多东西,首先我们先分析一下。
文件包含&rce 是为了和前面的形成闭合,这样在后面通过包含的1配合data伪协议进行传入参数,参数为一个执行的函数,这里给了我一个思路,如果我把<?>修改为base64的话,也许能进一步绕过。先说payload:?
flask–通过算pin码进入控制台 那么首先尝试能不能读取到环境变量的内容–(/proc/self/environ是Linux下中的一个文件,这个文件里保存了系统的一些变量。flask在开启debug模式下,可以通过输入pin码进行代码调试模式,也就是console控制台。进入题目首先知道两个信息–框架是flask–首先考虑是不是存在ssti第二个是题目描述中的信息(开启了debug模式)好的我们现在知道第一个有用信息就是,最后的flag位置位于环境变量中。这个其实往往都是默认的,但是还是演示一下。很多都是默认的,重点需要关注三个东西。
[SCTF 2021]loginme 题目的提示是CVE-2020-28483,我提前去查了一下。好像没有执行,这个时候回想到这个题用的是go语言的gin框架,go语言模板渲染支持传入一个结构体的实例来渲染它的字段,就有可能造成信息泄露。意思就是说用了gin框架的会出现漏洞可以用XFF文件头伪造admin。似乎是把我的输入给输出出来了,那我们试试模板注入。我发现直接用.也可,翻了其他博主的wp是这个原因。注意到这个id和名字,我们切换试试。代表要应用的对象,所以可以让。直到最后换到4,观察结果。
JWT框架 三部分分别为1.header:声明了JWT的签名算法 2.payload:承载了各种声明并传递明文数据,例如:username、password等 3.signture:拥有该部分的JWT被称为JWS,也就是签了名的JWS。Json Web Token,是一种令牌格式,形式由三部分组成,之间由。
[BJDCTF2020]EzPHP 正则匹配掉了许多我们之后要的参数,$_SERVER[‘QUERY_STRING’]不进行url解码,而GET的传参方式会进行一次解码,因此我们可以把要传的参数进行url编码(此处是对所有字符进行url编码,而不是对特殊字符如空格、引号等进行url编码)即可绕过黑名单限制。preg_match(‘/^aqua_is_cute$/’, $_GET[‘debu’])要求debu的值满足正则/^aqua_is_cute$/,^和$用来表示开头和结尾。首先保证传入的$code为create_funtion,
CTFSHOW-RCE挑战 分析:自增加上长度过滤,但是放出来了0和1,可以用01做变量来进行传参。只有0放出来了,并且字符数进一步缩小,但是可以在上一道题基础上改一下。初步思路是直接用反引号输出,也就是echo出来一个shell命令。用echo将值输出回来,然后反引号包裹shell命令。然后在get请求里面用_和__代替掉system和ls。这是编译前,记得删除注释后用url进行编码。额,根据我的印象中,这个题需要用自增。:post一个请求然后不能出现,和.在post里面用0和1进行命令执行。//输出NAN的第一个字符。
[天翼杯 2021]esay_eval WP 得到了payload:?}}直接不犹豫连接蚁剑.当我们以为就此结束可以拿到flag我们点击根目录发现这个shell没有访问权限,但是在/var/www/html中有上传权限,所以可以通过上传恶意的so文件,通过蚁剑的redis管理插件,进行ssrf,然后包含恶意so文件(:因为插件市场这个东西,国内基本是访问不到,我在用蚁剑访问的时候,就一直转圈圈转不出来,所以可以使用github的插件仓库下载插件,然后手动放到。