CSP
2023-9-1 坐标变换(其一)
简单的坐标平移操作。首先从输入中读取两个整数n和m,表示有n组坐标点和m组平移向量。然后通过一个循环读取n组坐标点的x和y坐标,并将它们的和分别累加到sumx和sumy中。接着再通过一个循环读取m组平移向量的x和y坐标,将它们分别加上sumx和sumy,得到新的x和y坐标,最后输出这两个新坐标。通过这个操作,实现了将n组坐标点进行平移的功能。
1 |
|
2023-9-2 坐标变换(其二)
二维坐标变换。首先从输入中读取两个整数n和m,表示有n个变换操作和m组坐标点需要进行变换。然后使用两个vector数组k和xt分别存储变换系数和坐标偏移量。接着通过一个循环读取n个变换操作,每个操作包含一个整数x和一个浮点数cz,根据x的值来更新变换系数k和坐标偏移量xt。最后通过一个循环读取m组坐标点和两个整数cz1和cz2,根据之前计算的变换系数和坐标偏移量,对坐标点进行线性变换,然后输出变换后的坐标点。
注意:
在C++中,fixed
和setprecision(3)
是用来设置输出浮点数的格式和精度的。具体说明如下:
fixed
:指定浮点数的输出格式为固定小数点表示。即输出的浮点数将以小数点表示,而不是科学计数法。setprecision(3)
:指定浮点数的输出精度为3位小数。即输出的浮点数将保留3位小数。
在代码中,cout<<fixed<<setprecision(3)
的作用是设置之后输出的浮点数都将采用固定小数点表示,并保留3位小数。
1 |
|
BuuCTF
19、BuyFlag
查看源代码,发现有两个php文件链接,点击一个查看
点击右边的菜单,有PAYFLAG,点击查看
出现这段话
查看源代码,用POST的方式传参,money=100000000,password=404,但是password不能为数字,所以password等于404+任意字符
前面提示必须是cuit的学生,所以修改cookie里的user=0
为user=1
修改uesr=0为user=1,页面变了,提示输入password
post传参,password=404a&money=100000000,提示数字太长
尝试次方 1e9,得到flag
1 | flag{2eaf1e59-0556-4816-b343-80a3466e934e} |
20、Easy MD5
查看源代码,找不到有用的信息,抓包
看到有一个提示:Hint: select * from 'admin' where password=md5($pass,true)
1 | md5(string,raw) |
输入ffifdyop
提交
查看源代码
用get传参,满足a!=b且md5(a)=md5(b)
md5加密后的值开头为0E,则说明它们的值相等
payload:/levels91.php?a=s878926199a&b=s155964671a
包含flag.php文件
用post传参,满足param1!=param2且md5(param1)=md5(param2)
这里用php数组绕过,由于哈希函数无法处理php数组,在遇到数组时返回false,我们就可以利用false==false成立使条件成立。
param1[]=1¶m2[]=2
得到flag
1 | flag{5699128f-b8b5-4580-9e90-8ab95639eb15} |