关于实训中的一些小知识
关于一些常用的payload
这是一个在网页中输入的可以保证使用的payload,通过php文件可以看到很多东西
1 | xxx.xxx.xxx.xxx/?***=data://text/plain, *** |
利用sql语句注入一句话木马的payload
1 | select "<?php *** ?>" into outfile "路径" |
linux的常用命令
查找想要查找从根目录 / 开始的文件名
1 | find / -name "文件名" |
查找这个文件后面的所有文件
1 | find / -type f |
php中的一些基础函数
var_dump()函数
这个函数是用来表示一个函数的类型和大小的
mb_strpos()函数和strpos()函数
这个函数是用来用在要检测在字符串中的子串第一次出现的位置
1 | php > var_dump(mb_strpos('开始23测试ceshi', '测试')); |
注意:这个是按照字来处理的,也就是说是两个字节
strpos()函数是差不多类似的,但是就是按照字节来算
1 | php > var_dump(strpos('开始23测试ceshi', '测试')); |
并且如果没有这个子串,那就是整个字符串的长度
in_array($x, $y)函数
注意顺序,这个是表示x在y中
sqlmap的post注入用法
方法一
sqlmap的post注入需要一个参数是注入点的参数
我们可以使用形如
1 | python sqlmap.py -u http://111.200.241.244:50506/ --data search=1 -D news -T secret_table --dump |
这样的形式直接获得数据
方法二
先在burp中把请求保存成本地文件
1 | python sqlmap.py -r 事前在burpsuite中保存成文件的数据 -p 参数 -D 库名 -T 表名 --dump |
实例
1 | python sqlmap.py -r C:\Users\ethanyi\Desktop\post.txt -p search -D news -T secret_table --dump |
正则表达式
正则表达式有些是以下方格式(在javascript的match函数中)
1 | /^hfuhfa/ |
其中^是表示了匹配开头是那个的样子
$表示匹配的末尾是上方那个字符串
javascript的eval函数
eval()函数中的参数是一个字符串,这个字符串是可以执行的代码,eval函数的意义就是使用这个代码来执行
关于php
php的==和===
==在php中是指数值比较
===在php中是数值和类型比较
举个例子
1 | $a=1; |
结果分别是true、false
除此之外:php中,非数值性的字符串和数字比较时,字符串会先转变为数字0,再来和数字比较
其中:
1、形如”aa111111”的字符串,会直接变为0
2、形如”1111aa”的字符串,会变成1111
3、形如”aaa111aaa”的字符串,会变成0
4、形如”111aaa111”的字符串,会变成111
(别问,问就是试出来的)
SSTI模板注入
SSTI(Server-Side Template Injection)服务器端模板注入
python flask模板
1 | 在flask中:使用Jinja2模板引擎,{{}}是变量包裹标识符。{{}}并不仅仅可以传递变量,还可以执行一些简单的表达式。 |
一些payload或者说魔术方法
1 | __class__ 返回类型所属的对象 |
有用的payload
1 |
|
详情可以看https://www.freebuf.com/column/187845.html,我觉得写得很详细
os.system和 os.popen
这两句前者返回 退出状态码 , 后者 以file 形式 返回 输出内容