最近在做ctfweb题,在bugkuctf平台上,不知道最近实验吧发生了什么。
记录一下10.15-10.17号的学习笔记吧
php方面:
1.strstr()函数:
echo strstr("hello world!","world");
查找world,在hello world中是否存在,如果在,返回该字符串及后面剩余部分
2.substr函数()
类似于string的查询
substr("hello world",6)
输出 world
从第6个字符开始输出(0开始)
3.str_replace()
echo str_replace("world","peter","hello world")
将world替换成peter
搜索字符串是一个数组,则返回数组;
搜索字符串是一个数组,那么将对每个元素都查找;
如果需要对某个数组进行查找和替换,并且需要执行的替换的元素少于查找到的元素的数量,那么多余的将用空字符串替换;
如果对一个数组进行查找,但只对一个字符串进行替换,那么替换字符串将对所有查找到的值起作用
4.
parse_str()
把查询字符串解析到变量中
5.php://filter 一个协议可以对任意文件进行读取
参数列表:(使用 / 分隔)
resource:过滤流(实际上是文件名)
read:读取的方式 read=string.toupper 表示会以大写字母输出
write:
可以利用read的读取方式,(base64,rot13等)先将一句话木马加密,然后在进行decode
就可以将源码无效化同时注入了一句话。
6.$_requeset() 相当于集合了$_get()、$_post()、$_cookie()
7.eval()-----eval括号内可以直接执行代码,可以利用 ); 完成多次操作
用于计算表达式的值
该函数吧字符串按照php代码来计算(原来是个字符串,现在变成了代码完成赋值输出等操作)
括号内必须是合法的php代码,而且是以分号结尾
如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。
<?php
$string = "beautiful";
$time = "winter";
$str = 'This is a $string $time morning!';
echo $str. "<br />";
eval("\$str = \"$str\";");
echo $str;
?>
输出:
This is a $string $time morning!
This is a beautiful winter morning!
8.var_dump():
将显示一个或多个表达式的值,包括表达式的类型和值,数组会递归展开。
9.file() 读取文件,返回的是一个数组
file_get_contents() 读取文件到字符串中
10.trim()函数
从字符串中移除预定义字符,或者空白字符
如果没有指定,则删除:"\0" "\t" "\n" "\r" " "
web方面:
1.post请求要使用s.Session(),否则不会认为是同一电脑发送过来的
2.host文件 将网址域名与对应ip地址建立一个关联。会先从hosts文件中找
C:\Windows\System32\drivers\etc\hosts
3.python构造get、post
返回文本content以及text
content返回是二进制代码要使用需要decode
text是跟文件头编码一致的编码方式
①get请求:
传递参数用parmas
②post请求:
传递参数用data
headers 请求头部