ssh免密码登录
笔记
环境有两个机器
客户端
服务器
生成一对密钥客户端输入
1ssh-keygen -t rsa
全部回车即可他默认会保存在~/.ssh/文件夹里面id_rsa为私钥,id_rsa.pub为公钥
发送给服务器并生效1scp [公钥文件] root@服务器ip:要发送到目标那个目录里面
在服务器上查看有没有发送到已经发送到了
7. 网易web安全渗透, sql漏洞之二次编码注入
二次编码注入原理为什么要进行编码,有点应为原始的格式并不适合传输比如
1+ = & ;
要是上面的这个符号在http传输中会和原始的有冲突
原理urlencode()函数就是URL编码的
1234<?php$str = "%25";echo 'urlencode($str);?>
结果等于
1%
上面的%25url解码后就是%
%27就是'
实战实验环境搭建应为没有实验环境我就自己写了一个a.php文件代码
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> ...
9. 网易web安全渗透, sql漏洞之二次注入
笔记
sql漏洞之二次注入原理
第一步:插入恶意数据第一次进行数据库插入数据的时候,仅仅对其中的特殊字符进行了转义,在写入数据库的时候还是保留了原来的数据,但是数据本身包含恶意内容。
第二步:引用恶意数据在将数据存入到了数据库中之后,开发者就认为数据是可信的。在下一次需要进行查询的时候,直接从数据库中取出了恶意数据,没有进行进一步的检验和处理,这样就会造成SQL的二次注入
实战第24关点击注册输入的是用户是admin'#密码是123456上面提示注册成功查看一下数据库可以看见已经写上面登录上我输入到是当前密码是123456新密码是123456789发现admin这个用户被修改了
6. 网易web安全渗透, sql漏洞之宽字节注入
宽字节注入原理什么是宽字节GB2312、GBK、GB18030、BIG5、Shift_JIS都是常见的宽字节编码
1个字节的字符,是短字节,所有的英文占1个字节
我们都知道1个字节占8位比如a二进制表示就是01011101,0和1组合有255种完全满足英文的
2个字节的字符,是宽字节,中文默认都是占两个字节的
如果我们用1个字节表示中文是远远不够的,所有要用两个字节
什么是宽字节注入
防御:有的网站会进行过滤,'给转换成\'绕过:将\给消灭掉
宽字节注入实战第32关
判断是否存在sql注入漏洞输入URL:http://192.168.0.108/Less-32/?id=1正常显示
下面加上'输入URL地址: http://192.168.0.108/Less-32/?id=1'这个他专门显示了被转换了\'我们就可以进行宽字节探测了添加%df输入URL:http://192.168.0.108/Less-32/?id=1%df'%df加\会变成運就没有\了
发现是可以注入点如果还是不确定可以用and 1=1来判断
输入UR ...
5. 网易web安全渗透, sql时间盲注
sql注入漏洞时间盲注原理根据时间来判断漏洞代码
不管你输入什么都不显示这个就很难检查出来sql注入漏洞我们就可以根据网站的延迟时间来判断是否查询sql注入漏洞和数据
sql注入漏洞时间盲注方法现在的数据库名是dvwa抛开的来说
sleep()函数他这个函数是延迟程序执行的代码
1select sleep(100);
dai代码的意思是延迟100秒赞在执行
核心语法:就可以判断数据库名了
当前数据库名是dvwa
代码
1select if(left(database(),1)='a',0,sleep(3));
left()函数这个有说4. 网易web安全渗透, sql 布尔型盲注上面代码介绍意思判断是database()查询当前数据库名第1个字符比较正确直接返回0 错误就执行sleep(3)延迟3秒返回0结果是d
这个我输入a他延迟3秒说明不是a
我输入d他立刻就执行了说明就是d字符
真实场景:就可以判断数据库名了在真实场景网站可能要waf和其他机智就不让输入'就可以上一节学习到的substr()函数和ascii()函数在这个查看4. 网易 ...
6. Metasploit之Metasploit木马
再学Metasploit 之前学习的Metasploit没有写笔记都忘掉了,这次叫完整的学习内容记录下来
要是自己通过什么漏洞或者什么方式拿到了shell,但是这个shell不是很方便,比如叫他做查看目标的桌面。监听目标的麦克风,打开目标的摄像头,都是很难实现的,我们就可以使用Metasploit
他的工作方式
是完全在内存里面,不会写入硬盘里面,查杀硬盘的杀毒软件是无效的
他会注入到合法的进程里面
基于注入的进程上传和预加载DLL进行扩展模块的注入(客户端API)
基于注入的进程建立的socket连接建立加密的TLS通信隧道
利用TLS隧道进一步加载后续扩展模块(避免网络取证),这样就不能发现里面的传输的内容
客户端提供基于ruby的全特性的API ,他支持任何语言,
拿到的shell是这样的,就是Metasploit的shell
Metasploit的shell文件操作这个shell 输入linux的命令也可以输入win系统命令也可以操控目标shell如果想操控kali自己加上l
run和bgrun命令:多功能,拿到了目标的Metasploit的shell可以使用下面的模 ...
4. 网易web安全渗透, sql 布尔型盲注
笔记sql注入漏洞布尔型盲注原理下面的代码不管你输入正确就显示Right,你输入错误显示Wrong没有其他的就是你不管输入什么就有两个结果这个我们就可以通过真和假来判断
他是怎么实现查询数据库的那zhao这个zhao是数据库名
1234567891011121314我进行猜他一个一个字符的猜他第一个字符是不是a返回Wrong第一个字符是不是z返回Right第二个字符是不是za返回Wrong第二个字符是不是zh返回Right等等。。。。。。。。
知道猜叫名猜出来
布尔型盲注方法left()函数left()函数是一个字符串函数,它返回具有指定长度的字符串的左边部分
left()函数进行注入数据库名称dvwa下面这个我用的是 database()查询当前数据库的,
判断第一个字符是什么代码
1select left(database(),1)='d';
结果结果是d可以看见输入a是错的,输入d是对的
判断第二个字符是什么第一个字符是d以此类推到最后一个结果就出来了
regexp函数SQL中的正则表达式(regexp)
regexp进行布尔型盲注数据库名称dvwa下面这个 ...
3. 网易web安全渗透,sql注入之报错注入
报错注入漏洞原理和应用
构造 payload(有效载荷)让信息通过错误提示回显出来
适合应用场景:进行注入查询不回现内容,会打印sql错误信息Update、 insert等语句,会打印错误信息
查看一下下面的代码可以看到
sql执行对了就打印出谢谢
sql执行错了就打印出sql的报错的信息
原理图
报错注入方法凡是可以让错误信息显示的函数(语句),都能实现报错注入,这里我们列举3种,还有其他的
floor()函数报错注入下面使用的是users数据库sql语句
1select count(*) from users group by concat((select 要执行的sql语句),floor(rand(0)*2));
上面代码分析
12345678floor()是取整数rand()在0和1之间产生一个随机数rand(0)*2将取0到2的随机数floor(rand()*2)有两条记录就会报错floor(rand(0)*2)记录需为3条以上,且3条以上必报错,返回的值是有规律的count(*)是用来统计结果的,相当于刷新一次结果group by在对数据进行分组时会先看看虚拟表 ...
php高级
1. 多维数组
PHP - 多维数组和c语言的几乎一样array是创建数组的函数代码
123456789101112<?php$cars = array(array("a","b","c"),array("d","e","f"),array("g","h","i"),);echo $cars[0][0]."<br/>";echo $cars[1][0]."<br/>";echo $cars[2][0]."<br/>";?>
结果
2. PHP 日期和时间函数date()语法date(==必需规定时间戳的格式==,==可选规定时间戳默认是当前时间和日期==)
获得简单的日期d - 日m - 月Y - 年1 - 星期列
123456<?phpecho "今天是 " . da ...
php基础总结
php基础学习代码审计做铺垫加油奥利给学习书名《php7底层设计与源码实现》学习网站https://www.w3school.com.cn/html/index.asp
1<?php 代码部分 ?>
1. phpinfo();函数查看php版本还能看到其它很多关于PHP的信息,叫做探针
代码 123<?php phpinfo();?>
结果
2. 变量
代码
123456<?php $a=1; $b=5; $c=$a+$b; echo $c;?>
结果
上面的介绍 变量前面要加上$ echo 和 print 之间的差异:
echo - 能够输出一个以上的字符串
print - 只能输出一个字符串,并始终返回 1
3. 字符串
代码 1234567<?php $x = "Hello world!";echo $x;echo "<br>"; $x = 'Hello world!';echo $x;?>
结果 上面的介绍 那个<br>是 ...