博客
关于我
BugkuCTF web_31-40
阅读量:326 次
发布时间:2019-03-04

本文共 2092 字,大约阅读时间需要 6 分钟。

31 md5 collision(NUPT_CTF)

题目有md5提示,所以找一个md5值是0e开头的看看
get传参?a=240610708拿到flag。

————————————

32 程序员本地网站

伪造XFF头就行了

————————————

33 各种绕过

sha1() 函数计算字符串的 SHA-1 散列。
sha1只对字符型进行处理,是数组的话返回false,所以让两个值都为数组就可以了。

passwd要用post提交才行(不知道为啥)

————————————

34 web8

extract() 函数从数组中将变量导入到当前的符号表。
该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量。

可以构造fn=php://input的值和ac的值一样
也可以让ac的值和flag.txt里的值一样都能拿到flag。

————————————

35 细心

访问robots.txt,(扫描后台能扫到)看到禁止访问resusl.php.那就访问这个好了。
接着构造x的值,题目上有个admin,试试看 拿到flag。

————————————

36 求getshell

getshell就是获得权限的意思。
Content-Type来表示具体请求中的媒体类型信息。

请求头Content-Type,通过大小写进行绕过
文件格式Content-Type用image/png
上传文件名用.php5后缀

这道题不是很理解,以后掌握的知识多了再回来看看。

————————————

37 INSERT INTO注入

explode() 函数把字符串打散为数组。

延迟注入,是一种盲注的手法, 提交对执行时间敏感的函数sql语句,通过执行时间的长短来判断是否执行成功,比如:正确的话会导致时间很长,错误的话会导致执行时间很短。

mysql中与if有相同功效的就是:select case when (条件) then 代码1 else 代码 2 end;

现在理解起来有些费劲,过段时间回来看
参考链接https://blog.csdn.net/jlu16/article/details/86264633

————————————

38 这是一个神奇的登陆框

参考链接https://blog.csdn.net/qq_42967398/article/details/84930265

database()
以utf8字符集中的字符串形式返回默认(当前)数据库名称。 如果没有默认数据库,则DATABASE()返回NULL。 在存储例程中,默认数据库是例程所关联的数据库,它不一定与调用上下文中默认的数据库相同

mysql(5.0+)默认定义information_schema数据库,有
schemata(数据库名)表、tables(表名)表、columns(字段名)表

在schemata表中,schema_name字段用来存储数据库名
在tables表中,table_schema和table_name分别存储数据库名和表明
在columns表中,table_schema(数据库名)、table_name(表名)、column_name(字段名)

————————————

39 多次

group_concat(column):对查询到的多条记录进行合并。

concat()的一般用法主要是用于拼接.
例如:concat(‘m’,‘y’,‘s’,‘q’,‘l’)作用是mysql。

异或注入
例:?id=1’^(length(‘union’)!=0)–+

参考链接https://blog.csdn.net/qq_26090065/article/details/82708691

————————————

40 PHP_encrypt_1(ISCCCTF)

php在循环或if等块中声明的变量也可以在块外识别和访问,

function decrypy($data){   	$key = "729623334f0aa2784a1599fd374c120d";	//md5('ISCC')	$klen = strlen($key);	$data = base64_decode($data);	$len = strlen($data);		for ($i=0, $x=0; $i<$len; $i++){   		if ($x==$klen){   			$x = 0;		}		$char .= $key[$x];		$x++;	}	$str="";	for ($i=0; $i<$len; $i++){   		$str .= chr((ord($data[$i]) + 128 - ord($char[$i])) % 128);	}	echo $str . "<br />";}decrypy("fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=");
你可能感兴趣的文章
阿里钉钉面试题
查看>>
华为社招笔试
查看>>
MFC的Dlg和App什么区别?应用程序类与对话框类
查看>>
C\C++下获取系统进程或线程ID(转)
查看>>
VS环境变量(转)
查看>>
C++中找资源或者函数的方法
查看>>
_T和_L的区别
查看>>
一些留给自己的思考题(只求回过头来能够有所获)
查看>>
SQL函数返回表的写法
查看>>
delete对象时会自动调用类的析构函数
查看>>
C++ 子类对象直接赋值给父类对象可行,反过来不行
查看>>
WMWare下安装centOS7,并使用xshell进行连接记录.
查看>>
linux下同一个动态库名为何辣么多的.so文件
查看>>
SQL联表的方式(逗号, Left Join, Right Join)
查看>>
牛客网输入输出举例
查看>>
字符串初始化时的注意点
查看>>
dll路径加载顺序
查看>>
悬垂指针和野指针的区别
查看>>
软考相关试题
查看>>
顺序表的操作
查看>>