【无标题】

[GXYCTF2019]CheckIn

一眼看到“==”猜测出是base64

得到一串:奇奇怪怪的的东西,想到了凯撒密码但是不对

尝试了很多方法后,决定将这串奇怪的东西转为Ascill,因为发现它的Ascill值在33到156之间

AScill的值在33到156直接就是ROT47加解密了

直接在在线网站进行解码发现出现一串的东西,也不知道怎么了

实在不行来用一 一对照,ASCII编码对照表_911查询 (911cha.com)

参考了大神的wp,

得到的结果是GXY{Y0u_kNow_much_about_Rot}

补充:
    ROT n 系列密码

       主要分为ROT5、ROT13、ROT18、ROT47 编码是一种简单的码元位置顺序替换暗码。此类编码具有可逆性,可以自我解密,主要用于应对快速浏览,或者是机器的读取,而不让其理解其意。

    ROT5:是 rotate by 5 places 的简写,意思是旋转5个位置,其它皆同。只对数字进行编码,用当前数字往前数的第5个数字替换当前数字,例如当前为0,编码后变成5,当前为1,编码后变成6,以此类推顺序循环。
    ROT13只对字母进行编码,用当前字母往前数的第13个字母替换当前字母,例如当前为A,编码后变成N,当前为B,编码后变成O,以此类推顺序循环。
      ROT18:这是一个异类,本来没有,它是将ROT5和ROT13组合在一起,为了好称呼,将其命名为ROT18。
     ROT47对数字、字母、常用符号进行编码例如当前为小写字母z,编码后变成大写字母K,当前为数字0,编码后变成符号_。用于ROT47编码的字符其ASCII值范围是33-126。

    加密过程:

        首先,将明文中的每个字符转换为其对应的ASCII码值。然后将字符的ASCII码值加上47。
    如果加上47后的ASCII码值超过了126,则从33开始重新计数。 将加密后的ASCII码值转换回字符形式即可。

解密过程:

        首先,将密文中的每个字符转换为其对应的ASCII码值。将字符ASCII码值减去47。
    如果减去47后的ASCII码值小于33,则从126开始重新计数。将解密后的ASCII码值转换回字符形式即可。
 

[BJDCTF2020]The mystery of ip

  进去看了一圈没有什么特别的东西,源代码里面有一个flag.php

直接使用bp,进行抓包来看看,ip应该是直接给我们的

服务器端从我们身上直接获得ip的

那么我们加上

尝试是否存在XFF漏洞存在   {1+1},如果存在,会执行我们的1+1,输出计算结果2

基本可以判断存在XFF漏洞存在

那么  输入{system('ls /')},发现了一些目录,访问一下flag目录

最后得到了flag

补充:

服务端从客户端获得ip的方法:

     主要有三种:emote_addr参数(无法伪造),X-Forwarded-For,client-ip等请求头

emote_addr:指的是当前直接请求的客户端IP地址,它存在于tcp请求体中,是http协议传输的时候自动添加,不受请求头header的控制。因此,当客户端与服务器之间不存在任何代理的时候,通过remote_addr获取客户端IP地址是最准确,也是最安全的。

X-Forwarded-For,即XFF,是很多代理服务器在请求转发时添加上去的。如果客户端和服务器之间存在代理服务器,那么通过remote_addr获取的IP就是代理服务器的地址,并不是客户端真实的IP地址。因此,需要代理服务器(通常是反向代理服务器)将真实客户端的IP地址转发给服务器,转发时客户端的真实IP地址通常就存在于XFF请求头中。

   client-ip:同XFF一样,也是代理服务器添加的用于转发客户端请求的真实IP地址,同样保存与请求头中

Nikto工具:
  

1.作用:

   搜索存在的安全漏洞的文件或服务器漏洞

   2.参数:
   -h/-host (域名或者ip或者文本文件):扫描地址

基本格式:
 192.168.2.130        【直接写ip地址,默认80端口】

https://www.baidu.com   【域名】

192.168.2.15:440      【IP+指定端口】

3.和namp一起使用:

     两个都是KaliLinux系统中默认安装的

Nikto 把Namp扫描的某一个端口ip地址进行扫描

namp扫描开放的80端口的IP并通过oG选项对扫描结果输出并整理后,通过管道符“|”

将结果导入Nikto中进行扫描。

namp -p [端口] ip/24 - oG - | nikto -hos -

4.支持代理扫描和扫描域名头:
 

namp -host  [ip/网站] -useproxy

nikto -vhost [域名] -port 80

5.扫描中的互动按键

    

X-Forwarded-For:

      简称XFF头,它代表客户端,HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。它不是RFC中定义的标准请求头信息,标准格式如下:

    X-Forwarded-For: client1, proxy1, proxy2,proxy3。

        解释:这个请求成功通过了三台代理服务器:proxy1, proxy2 及 proxy3。请求由client1发出,到达了proxy3(可能是请求的终点)。请求刚从client1中发出时,XFF是空的,请求被发往proxy1;通过proxy1的时候,client1被添加到XFF中,之后请求被发往proxy2;通过proxy2的时候,proxy1被添加到XFF中,之后请求被发往proxy3;通过proxy3时,proxy2被添加到XFF中,之后请求的的去向不明,如果proxy3不是请求终点,请求会被继续转发。简单来说就是,XFF 头信息可以有多个,中间用逗号分隔,第一项为真实的客户端ip,剩下的就是曾经经过的代理或负载均衡服务器的ip地址。

       场景=客户端--CDN--Nginx

     当用户请求经过 CDN 后到达 Nginx 负载均衡服务器时,其 XFF 头信息应该为 “客户端IP,CDN的IP”

  一般情况下CDN服务商出于自身安全考虑会将屏蔽CDN的ip,只保留客户端ip求头到达 Nginx 时:

在默认情况下,Nginx 并不会对 XFF 头做任何处理

    当 Nginx 设置 X-Forwarded-For 等于 $proxy_add_x_forwarded_for 时:
如果从CDN过来的请求没有设置 XFF 头(通常这种事情不会发生),XFF 头为 CDN 的ip
此时相对于 Nginx 来说,客户端就是 CDN
如果 CDN 设置了 XFF 头,我们这里又设置了一次,且值为$proxy_add_x_forwarded_for 的话:
XFF 头为“客户端IP,Nginx负载均衡服务器IP”,这样取第一个值即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值